TIL _ SQL(집계함수_count)

해달·2021년 8월 30일
0

TIL

목록 보기
38/80
post-thumbnail

Today 공부

  • count (값) 차이

SQl sprint

  • Table 관계도

COUNT (*)

Q. duRiCha가 작성한 글의 개수 (컬럼명: ContentCount)를 출력하기 위한 SQL을 작성해주세요.

SELECT COUNT(*) AS ContentCount 
//COUNT(content.id) 통과O
FROM content 
INNER JOIN user 
ON user.id = content.userId WHERE name = 'duRiCha

COUNT (content.id)

Q. 각 user(컬럼명: name)가 작성한 글의 개수 (컬럼명: ContentCount)를 출력하기 위한 SQL을 작성해주세요.

SELECT user.name AS name,
COUNT(content.id) AS ContentCount
//COUNT(*) 통과X
FROM user 
LEFT JOIN content 
ON user.id = content.userId 
GROUP BY user.name

COUNT 함수

COUNT 함수는 테이블에 컬럼의 데이터 개수를 셀 때 사용을 하는데
NULL인 데이터는 제외하고 계산하기 때문에 전체 행 갯수를 가져올 때는 컬럼 대신에 (*)를 사용해야 한다

LEFT JOIN은 null값이 생기게 되는데 null값을 제외하고 개수를 셀때

  • 포함되는 경우 : COUNT(*)
  • COUNT(*)를 사용하면 NULL도 포함하여 전부 COUNT 합니다.
전체 행 개수 가져올때
SELECT COUNT(*) FROM TableName;

  • 포함되지 않는 경우: COUNT(ColumnName)
  • COUNT(컬럼명)을 사용하면 NULL 값은 제외하고 COUNT 합니다.
컬럼 데이터 개수 가져올 때
SELECT COUNT(ColumnName) FROM TableName;

마치며,

위에 두 문제를 풀면서 첫번째 문제는 (*) 로 모든 컬럼을 세는데 test를 통과했는데
밑의 문제는 (ColumnName) 으로 작성을 해야 통과가 되었다
아직 차이점에 관해 미흡한거 같아 검색으로 내용들을 찾아 보았다.
COUNT함수와 distinct를 같이 사용하면 활용도가 높다고 하는데 이 부분은 추후에 공부해봐야겠다.

0개의 댓글