250x250
728x90
SQL에서 COUNT 함수를 사용할 때 NULL 값을 포함시키는지 여부에 따라 두 가지 주요 방법이 있습니다: **COUNT(*)**와 COUNT(column_name). 이 두 방법의 차이점과 예시를 통해 자세히 설명해 드리겠습니다.
1. COUNT(*)
COUNT(*)는 테이블의 모든 행을 카운트합니다, 여기에는 NULL 값이 있는 행도 포함됩니다. 이 방법은 테이블의 전체 행 수를 알고 싶을 때 주로 사용됩니다.
예시 쿼리:
- 전체 사용자 수 카운트:
- sql : SELECT COUNT(*) FROM users;
- 특정 조건을 만족하는 행의 수 카운트:
- sql : SSELECT COUNT(*) FROM orders WHERE order_status = 'delivered';
- 조인을 통한 전체 수 카운트:
- sql : SSELECT COUNT(*) FROM users INNER JOIN orders ON users.id = orders.user_id;
- 그룹별 행 수 카운트:
- sql : SELECT category, COUNT(*) FROM products GROUP BY category;
- 하위 쿼리를 사용한 행 수 카운트:
- sql : SELECT COUNT(*) FROM (SELECT DISTINCT user_id FROM orders) AS unique_users;
2. COUNT(column_name)
**COUNT(column_name)**는 지정된 컬럼에서 **NULL**이 아닌 값들만 카운트합니다. 이 방법은 특정 컬럼의 비어 있지 않은 값의 수를 알고 싶을 때 사용됩니다.
예시 쿼리:
- 특정 컬럼의 비-NULL 값 수 카운트:
- sql : Scode SELECT COUNT(user_id) FROM orders;
- 조건을 만족하는 특정 컬럼 값의 수 카운트:
- sql : Scode SELECT COUNT(email) FROM users WHERE subscription_status = 'active';
- 조인과 함께 특정 컬럼 값의 수 카운트:
- sql : SELECT COUNT(orders.id) FROM users INNER JOIN orders ON users.id = orders.user_id;
- 그룹화된 데이터의 특정 컬럼 값 카운트:
- sql : SELECT category, COUNT(product_id) FROM products GROUP BY category;
- 하위 쿼리에서 특정 컬럼의 비-NULL 값 수 카운트:
- sql : SELECT COUNT(DISTINCT user_id) FROM (SELECT user_id FROM orders WHERE order_status = 'delivered') AS delivered_orders;
정리:
- *COUNT(*)는 테이블의 전체 행 수를 포함하여 NULL 값이 있는 행도 카운트합니다. 이 방법은 전체 행 수를 파악하는 데 유용합니다.
- COUNT(column_name)는 지정된 컬럼에서 **NULL**이 아닌 값을 카운트합니다. 이 방법은 특정 컬럼의 유효한 데이터 수를 파악하는 데 적합합니다.
두 방법의 선택은 분석하고자 하는 데이터의 특성과 목적에 따라 달라집니다. **COUNT(*)**는 전체 데이터의 양을, **COUNT(column_name)**은 특정 데이터의 품질이나 완전성을 파악할 때 유용합니다.
728x90
'실무 좀 잘하고 싶다. > 자격증공부' 카테고리의 다른 글
2024년 SQL 시험 PIVOT절과 UNPIVOT절 총정리 (0) | 2024.03.02 |
---|---|
2024년 SQLD, 개발자, SQL전문가 시험일정 (0) | 2024.01.14 |
SQLD 자격증 스키마 관련 자세히 (0) | 2023.11.08 |
2024년 SQLD SQLP 검정과목 변경과 검정방법 (0) | 2023.10.18 |
SQLD 기출 주식별자 특성 문제 및 내용 공부 (0) | 2023.09.15 |