CS공부/데이터베이스
[MySQL] count() 함수사용-null제거, 중복제거
메자곰
2021. 6. 8. 00:16
* COUNT()
: SQL에서 사용되는 집계 함수로 행의 개수를 출력하는 데에 사용된다.
※ COUNT 외 집계 함수로는 SUM, AVG, MIN, MAX 등이 있다.
- 전체 행의 개수
SELECT COUNT(*) FROM TABLE_NAME
: 이 결과에는 NULL이 포함되어서 세어진다.
- NULL을 포함하지 않는 행의 개수
SELECT COUNT(COLUMN_NAME) FROM TABLE_NAME
: 칼럼의 이름을 사용하면 그 칼럼의 NULL인 값을 제외한 개수가 반환된다.
- 중복 값을 제외한 행의 개수
SELECT COUNT(DISTINCT COLUMN_NAME) FROM TABLE_NAME
- 값을 치환하여 구하기
SELECT COUNT(IFNULL(COLUMN_NAME,0)) FROM TABLE_NAME
: NULL값을 0으로 계산 -> 집계 함수에 반영됨
->따라서, 집계 함수에서 이 NULL을 포함할 건지, 0으로 치환할 것인지, 아예 제외하고 계산할 것인지를 생각해야 한다.
- GROUP BY와 함께 사용하기
SELECT COLUMN_NAME , COUNT(*) FROM TABLE_NAME GROUP BY COLUMN_NAME
: 사실 집계 함수는 이렇게 그룹 지어서 사용할 때 의미가 있다. 어떤 칼럼으로 그룹을 지어 같은 칼럼의 행이 몇 개 있는지를 반환하게 된다.
-> 참고로 GROUP BY로 그룹을 묶은 칼럼이 아닌 다른 칼럼을 SELECT 하게 되면 에러가 발생할 수 있다.