작성
·
24
0
SELECT COUNT(*)
FROM City
WHERE Population > 100000
이 답인데 왜
SELECT COUNT(CITY)
FROM City
WHERE Population > 100000
카운트 안에 CITY 를 넣으면 안되는 걸까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 여진님.
SQL의 COUNT
함수는 테이블 내의 행(row) 수를 세기 위한 함수로 가장 자주 사용됩니다. 질문해주신 것과 같은 형태로 COUNT
함수에 특정 컬럼명을 넣는 경우에 대한 이해가 필요합니다.
질문에서 사용하신 SELECT COUNT(*)
는 테이블 City
의 모든 행(해당 조건을 만족하는 모든 행)의 수를 세는 것과 같습니다. *
를 사용하면 NULL 값을 포함한 모든 행을 카운트하게 됩니다.
반면, SELECT COUNT(CITY)
와 같은 형태는 CITY
라는 열의 값을 세려는 시도처럼 보일 수 있습니다. 하지만 SQL 문맥에서 CITY
라는 컬럼은 존재하지 않을 가능성이 큽니다. 또한, COUNT(column_name)
형식은 해당 열이 NULL이 아닌 값의 수를 세게 되므로 열을 지정했을 때의 동작은 달라질 수 있습니다. 만약 CITY
가 테이블의 유효한 열 이름이라면, 이 열의 값 중 NULL이 아닌 값만 세게 됩니다.
따라서 질문에서 의도하신 것이 모든 행의 개수(조건을 만족하는)를 세고자 하는 것이라면 COUNT(*)
을 사용하는 것이 적절합니다.
관련된 추가적인 설명은 다음의 답변에서 확인하실 수 있습니다: “2번과 3번문제 집계함수 질문”.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.