집 >데이터 베이스 >MySQL 튜토리얼 >COUNT(열) 대 COUNT(*): 각 SQL 카운트 함수를 언제 사용해야 합니까?
*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 중국어 웹사이트의 기타 관련 기사를 참조하세요!