해결된 질문
작성
·
44
0
33:56
SELECT count(col2)
FROM TABLE
WHERE col1 in (2,3) or col2 in (3,5);
에서 결과가 4인점은 이해가 됩니다.
(count는 Null 포함 x)
다만 오른쪽 아래 테이블이 헷갈리는 데, 만약 count(col2)가 아닌 col2만 출력하면 아래 처럼 나오는걸로 이해하고 있습니다.
col2
----
Null
6
5
3
3
강사님께서는 count에 해당하는 투플만 테이블만 표현하신건가요?
또 집계함수(sum, avg, max,min,count) 모두 Null은 포함하여 계산하지 않는다고 이해하면 될까요?
답변 2
0
안녕하세요,
말씀하신 대로 조건 자체는 5개의 행이 충족되나 count에 대해서는 NULL값을 제외하고 보여드렸습니다.
count도 count(*)의 경우에는 NULL을 셉니다.
나머지 sum, avg, max, min 그리고 count가 특정 행일 때는 NULL을 세지 않습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 제현승님.
질문해 주신 SQL 쿼리와 관련하여, SELECT count(col2)
쿼리에서는 col2
의 값이 NULL이 아닌 데이터의 개수를 계산합니다. 설명드리자면:
WHERE 조건: WHERE col1 in (2,3) or col2 in (3,5)
로 두 가지 경우에 해당하는 행을 선택합니다.
col1
값이 2 또는 3인 행col2
값이 3 또는 5인 행COUNT(col2): 이 부분은 col2
의 값이 NULL이 아닌 데이터의 개수를 세겠다는 의미입니다. 따라서 조건을 만족하는 행 중 col2
값이 NULL인 행은 제외됩니다.
집계 함수들(SUM
, AVG
, MAX
, MIN
, COUNT
) 모두 NULL 값은 계산에서 제외됩니다. 따라서 COUNT(col2)
는 NULL이 아닌 값의 개수를 반환하고, SUM
, AVG
, MAX
, MIN
등도 NULL 값을 제외하고 계산합니다.
질문해주신 내용에 근거하여, 강사님의 테이블 표현은 COUNT
함수를 사용했을 때의 결과만을 나타내는 테이블로 보여지며, NULL 값을 제외한 쿼리 결과를 이해하는 데 도움이 될 것 같습니다. 추가적으로 직접 데이터를 체험해보고 싶으시다면, SQL 실행 환경을 통해 다양한 입력을 실험해 보시는 것을 추천드립니다.
이와 관련된 유사한 질문과 답변을 확인하실 수 있는 게시물을 참고해보세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
이해되었습니다. 감사합니다.