SQLD 기출문제 COUNT NULL 계산 총정리

250x250
728x90

SQL에서 COUNT 함수를 사용할 때 NULL 값을 포함시키는지 여부에 따라 두 가지 주요 방법이 있습니다: **COUNT(*)**와 COUNT(column_name). 이 두 방법의 차이점과 예시를 통해 자세히 설명해 드리겠습니다.

1. COUNT(*)

COUNT(*)는 테이블의 모든 행을 카운트합니다, 여기에는 NULL 값이 있는 행도 포함됩니다. 이 방법은 테이블의 전체 행 수를 알고 싶을 때 주로 사용됩니다.

예시 쿼리:

  1. 전체 사용자 수 카운트:
  2. sql : SELECT COUNT(*) FROM users;
  3. 특정 조건을 만족하는 행의 수 카운트:
  4. sql : SSELECT COUNT(*) FROM orders WHERE order_status = 'delivered';
  5. 조인을 통한 전체 수 카운트:
  6. sql : SSELECT COUNT(*) FROM users INNER JOIN orders ON users.id = orders.user_id;
  7. 그룹별 행 수 카운트:
  8. sql : SELECT category, COUNT(*) FROM products GROUP BY category;
  9. 하위 쿼리를 사용한 행 수 카운트:
  10. sql :  SELECT COUNT(*) FROM (SELECT DISTINCT user_id FROM orders) AS unique_users;

2. COUNT(column_name)

**COUNT(column_name)**는 지정된 컬럼에서 **NULL**이 아닌 값들만 카운트합니다. 이 방법은 특정 컬럼의 비어 있지 않은 값의 수를 알고 싶을 때 사용됩니다.

예시 쿼리:

  1. 특정 컬럼의 비-NULL 값 수 카운트:
  2. sql : Scode SELECT COUNT(user_id) FROM orders;
  3. 조건을 만족하는 특정 컬럼 값의 수 카운트:
  4. sql : Scode SELECT COUNT(email) FROM users WHERE subscription_status = 'active';
  5. 조인과 함께 특정 컬럼 값의 수 카운트:
  6. sql :  SELECT COUNT(orders.id) FROM users INNER JOIN orders ON users.id = orders.user_id;
  7. 그룹화된 데이터의 특정 컬럼 값 카운트:
  8. sql : SELECT category, COUNT(product_id) FROM products GROUP BY category;
  9. 하위 쿼리에서 특정 컬럼의 비-NULL 값 수 카운트:
  10. 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

댓글

Designed by JB FACTORY