SQLD 기출 count 쿼리 사용방법과 NULL

250x250
728x90

SQLD 기출 count 쿼리 사용방법과 NULL

 

다들 SQLD 공부 잘 되가시나요? SQL에서 COUNT(*)와 COUNT(컬럼명) 함수는 결과 집합의 행 수를 세는 데 사용됩니다. 그러나 두 함수는 NULL 값을 다루는 방식에서 중요한 차이를 가집니다.

COUNT(*)

  • 특징 및 설명: COUNT(*)는 테이블의 모든 행을 계산합니다. 이 함수는 NULL 값을 가진 행도 포함하여 결과 집합의 총 행 수를 반환합니다.
  • NULL 값 계산 여부: COUNT(*)는 NULL 값을 포함하여 모든 행을 계산합니다.

COUNT(컬럼명)

  • 특징 및 설명: COUNT(컬럼명)은 특정 컬럼의 값을 계산하며, 이때 NULL 값은 제외하고 계산합니다.
  • NULL 값 계산 여부: COUNT(컬럼명)는 해당 컬럼에서 NULL이 아닌 값만을 계산합니다.

예시 쿼리

COUNT(*) 예시 쿼리:

-- 예시 1: 모든 행의 수를 센다.
SELECT COUNT(*) FROM Employees;

-- 예시 2: 특정 조건을 만족하는 행의 수를 센다.
SELECT COUNT(*) FROM Orders WHERE OrderDate BETWEEN '2023-01-01' AND '2023-12-31';

-- 예시 3: 그룹별로 행의 수를 센다.
SELECT DepartmentID, COUNT(*) FROM Employees GROUP BY DepartmentID;

-- 예시 4: 서브쿼리 내의 행 수를 센다.
SELECT COUNT(*) FROM (SELECT DISTINCT CustomerID FROM Orders) AS UniqueCustomers;

-- 예시 5: 조인을 사용하여 행의 수를 센다.
SELECT COUNT(*) FROM Employees e JOIN Departments d ON e.DepartmentID = d.DepartmentID;

 

COUNT(컬럼명) 예시 쿼리:

 
-- 예시 1: NULL이 아닌 LastName 값을 가진 행의 수를 센다.
SELECT COUNT(LastName) FROM Employees;

-- 예시 2: 특정 조건을 만족하면서 NULL이 아닌 OrderDate 값을 가진 행의 수를 센다.
SELECT COUNT(OrderDate) FROM Orders WHERE CustomerID = 1;

-- 예시 3: 그룹별로 NULL이 아닌 Salary 값을 가진 행의 수를 센다.
SELECT DepartmentID, COUNT(Salary) FROM Employees GROUP BY DepartmentID;

-- 예시 4: 서브쿼리 내에서 NULL이 아닌 값을 가진 고유한 행의 수를 센다.
SELECT COUNT(DISTINCT Country) FROM (SELECT Country FROM Suppliers) AS UniqueCountries;

-- 예시 5: 조인을 사용하여 NULL이 아닌 DepartmentName 값을 가진 행의 수를 센다.
SELECT COUNT(d.DepartmentName) FROM Employees e JOIN Departments d ON e.DepartmentID = d.DepartmentID;

이렇게 COUNT(*)는 테이블의 모든 행을 카운트하는데 사용되고, COUNT(컬럼명)은 NULL이 아닌 특정 컬럼의 값을 카운트하는데 사용됩니다. 따라서, NULL 값을 계산에 포함시키고 싶지 않을 경우 COUNT(컬럼명)을 사용하는 것이 좋습니다.

 

지금까지 기출문제로 나왔던, SQLD 기출 count 쿼리 사용방법과 NULL 포함 / 미포함에 대해서 살펴보았습니다.

728x90

댓글

Designed by JB FACTORY