>데이터 베이스 >MySQL 튜토리얼 >COUNT(*) 대 COUNT(열): SQL의 차이점은 무엇입니까?

COUNT(*) 대 COUNT(열): SQL의 차이점은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-13 14:57:43592검색

COUNT(*) vs. COUNT(Column): What's the Difference in SQL?

*SQL의 COUNT() 및 COUNT(열 이름): 미묘하지만 중요한 차이점**

SQL 쿼리를 사용할 때는 COUNT(*) 및 COUNT(열 이름)와 같은 다양한 집계 함수의 미묘함을 이해하는 것이 중요합니다. 이 글은 이 두 기능 사이의 미묘하지만 중요한 차이점을 명확히 하는 것을 목표로 합니다.

*COUNT(열 이름)와 COUNT() 비교**

COUNT(열 이름)는 지정된 열에서 null이 아닌 값의 개수를 셉니다. 이 함수는 지정된 기준을 충족하는 열에 존재하는 값의 수를 결정합니다.

반면에 COUNT(*)는 null 값이 포함되어 있는지 여부에 관계없이 테이블의 모든 행을 계산합니다. 테이블의 모든 행을 고려하여 총 행 수를 효과적으로 반환하므로 "보편적 수량자"라고도 합니다.

실제예

테이블에서 중복 값의 수를 계산하는 다음 쿼리를 고려해 보세요.

<code class="language-sql">select column_name, count(column_name)
from table
group by column_name
having count(column_name) > 1;</code>

이 쿼리에서는 COUNT(column_name) 함수를 사용하여 지정된 열(column_name)에서 null이 아닌 값의 발생 횟수를 계산합니다. 값이 Null이 아닌 값이 두 번 이상 나타나면 해당 행은 중복된 것으로 간주됩니다.

이 쿼리에서 COUNT(column_name) 함수를 COUNT(*)로 바꾸면 결과가 약간 달라집니다. 수정된 쿼리는 컬럼 이름 열의 null 값과 테이블의 총 행 수(null 값이 포함된 행 포함)를 포함하는 결과 집합의 추가 행을 반환합니다.

데모

이 차이점을 설명하려면 다음 SQL 코드를 고려하세요.

<code class="language-sql">create table #bla(id int,id2 int)
insert #bla values(null,null)
insert #bla values(1,null)
insert #bla values(null,1)
insert #bla values(1,null)
insert #bla values(null,1)
insert #bla values(1,null)
insert #bla values(null,null)

select count(*),count(id),count(id2)
from #bla</code>

이 쿼리를 실행한 결과는 다음과 같습니다.

<code>7   3   2</code>

COUNT(*) 함수는 테이블의 총 행 수를 나타내는 7을 반환합니다. COUNT(id) 함수는 id 열에 null이 아닌 값이 있는 행의 개수를 나타내는 3을 반환합니다. COUNT(id2) 함수는 id2 열에 null이 아닌 값이 있는 행의 수를 나타내는 2를 반환합니다.

요약하자면 COUNT(열 이름)과 COUNT()의 주요 차이점은 COUNT()는 개수에 null 값을 포함하고 COUNT(열 이름)는 이를 제외한다는 것입니다. 정확한 데이터 분석과 쿼리 최적화를 위해서는 이러한 차이를 이해하는 것이 중요합니다.

위 내용은 COUNT(*) 대 COUNT(열): SQL의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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