>데이터 베이스 >MySQL 튜토리얼 >COUNT(열) 대 COUNT(*): 각 SQL 카운트 함수를 언제 사용해야 합니까?

COUNT(열) 대 COUNT(*): 각 SQL 카운트 함수를 언제 사용해야 합니까?

DDD
DDD원래의
2025-01-13 15:07:43440검색

COUNT(column) vs. COUNT(*): When Should You Use Each SQL Count Function?

*SQL 계산 기능: COUNT(column)와 COUNT()**

의 차이점 및 적용 시나리오

SQL 데이터베이스에서 계산 작업은 기본적이고 일반적으로 사용되는 기능입니다. 그러나 COUNT(column)COUNT(*)의 선택은 결과에 직접적인 영향을 미칩니다. 이 기사에서는 이 두 가지 계산 기능 간의 주요 차이점을 살펴보겠습니다.

COUNT(column)지정된 열에서 NULL이 아닌 값의 개수를 계산하는 함수입니다. 행의 해당 열에 NULL 값이 포함된 경우 해당 행은 개수에서 제외됩니다. 이 기능은 고유한 값이나 특정 데이터 포인트를 계산할 때 유용합니다.

반면 COUNT(*) 함수는 열에 NULL 값이 포함되어 있는지 여부에 관계없이 선택한 그룹의 총 행 수를 계산합니다. NULL이 아닌 값과 NULL 값을 모두 계산합니다.

이 차이점은 NULL 값이 포함된 테이블을 처리할 때 더욱 분명해집니다. 예를 들어 다음 쿼리를 고려해 보세요.

<code class="language-sql">SELECT column_name, COUNT(column_name)
FROM table
GROUP BY column_name
HAVING COUNT(column_name) > 1;</code>

이 쿼리는 column_name 값이 두 번 이상 나타나는 행 그룹을 검색합니다. 그러나 COUNT(column_name)COUNT(*)으로 바꾸면 잠재적인 문제가 발생합니다.

COUNT(*)을 사용하면 쿼리는 column_name에 NULL 값이 포함된 행을 포함하여 각 그룹의 모든 행을 계산합니다. 이로 인해 출력에 NULL 값과 해당 NULL 값 개수가 포함된 추가 행이 나타날 수 있습니다.

이를 설명하기 위해 다음 데이터가 포함된 테이블을 생각해 보세요.

id id2
NULL NULL
1 NULL
NULL 1
1 NULL
NULL 1
1 NULL
NULL NULL

COUNT(id)을 사용한 다음 쿼리는 올바른 결과를 반환합니다.

<code class="language-sql">SELECT id, COUNT(id)
FROM table
GROUP BY id
HAVING COUNT(id) > 1;</code>

출력:

id COUNT(id)
1 3

하지만 COUNT(*)을 사용하면 추가 행이 생성됩니다.

<code class="language-sql">SELECT id, COUNT(*)
FROM table
GROUP BY id
HAVING COUNT(*) > 1;</code>

출력:

id COUNT(*)
1 3
NULL 2

위에 표시된 것처럼 COUNT(*)을 사용한 결과에는 id이 NULL인 추가 행과 NULL id 값을 포함하는 행 수를 나타내는 2라는 개수가 포함됩니다.

따라서 COUNT(column)COUNT(*)의 선택은 구체적인 데이터와 원하는 결과에 따라 달라집니다. COUNT(column)은 NULL이 아닌 값을 계산하는 데 더 적합하고 COUNT(*)은 NULL 값을 포함하는 행을 포함하여 모든 행을 계산하는 데 사용됩니다.

위 내용은 COUNT(열) 대 COUNT(*): 각 SQL 카운트 함수를 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.