SQL_ aggregate functions

Daye Kang·2020년 6월 21일
0

: column의 값들을 계산해 하나의 값을 리턴하는 함수. 'COUNT()'를 제외하고 'aggregate functions'는 'null' 값들을 무시한다.

COUNT

: 인자로 들어온 column의 전체 row의 개수를 세는 함수.

SELECT COUNT(*)
FROM table_name;

모든 row를 세고 싶을 때 '*' 를 괄호 안에 넣어 쿼리를 날린다.

Q. 중복된 값이 아닌 고유한 값들만 세고 싶다면?

: COUNT 안에 'DISTINCT' 를 넣으면 중복된 값이 아닌 고유한 값들만의 개수를 알 수 있다.

COUNT(DISTINCT column_name)
FROM table_name;

SUM

: 인자로 들어온 column의 전체 row의 값을 더하는 함수.

Q. COUNT()와 SUM()의 차이는?

: COUNT()는 column의 이름을 인자로 받아 빈 값이 아닌 값의 개수를 세는 함수이다. 각각의 row는 1개로 계산되는 것. 반면에 SUM() 역시 column의 이름을 인자로 받아 해당 column의 모든 값들의 합을 리턴하는 함수.
COUNT()는 값이 없는 row의 개수가 몇 개인지를 세고싶을 때, SUM()은 모든 값들의 총합을 구하고 싶을 때 사용한다.

MAX() & MIN()

: 인자로 들어온 column의 값들 중에서 최대값과 최소값을 리턴하는 함수.

Q. 만약 최대값과 최소값인 row의 개수가 여러개이면 무엇이 리턴될까?

: 해당 값을 갖고 있는 row들 중 가장 위에 있는 row가 리턴됨.

AVG()

: 인자로 들어온 column 값들의 평균값을 리턴하는 함수.

Q. 전체 값들의 평균이 아니라 고유한 값들의 평균값을 구하고 싶다면?

: AVG 안에 'DISTINCT'를 넣으면 고유한 값들의 평균값을 구할 수 있음.

/* Returns 2.02365 */
SELECT AVG(price)
FROM fake_apps;

/* Returns 4.15833.. */
SELECT AVG(DISTINCT price)
FROM fake_apps;
profile
뭐든 하자

0개의 댓글