count(*) 2

[SQL] GROUP BY와 집계 함수의 이해하기

SQL에서 GROUP BY 와 집계함수 (COUNT(), SUM(), AVG(), MAX(), MIN())를 사용할 때 헷갈렸던 경험을 정리하였다.처음에는 집계함수가 어떤 순서로 실행되는지, 그리고 왜 HAVING 과 WHERE 을 적절히 구분해야하는지 혼동했었다. 문제의 시작 :문제는 WHERE 절에서 왜 집계함수를 사용할 수 없는지 이해하는데서 시작되었다.SQL에서 WHERE 절은 데이터를 필터링 하는데 쓰이는데, 집계함수는 데이터를 그룹화 한 후에 사용할 수 있기 때문에 WHERE에서는 사용할 수 없다는 사실을 몰랐었다.WHERE vs HAVING:WHERE 절은 그룹화되기 전에 조건을 걸기 때문에 집계 함수가 적용되지 않은 상태에서 데이터를 필터링할 수 있다. HAVING 절은 그룹화된 후에 조건..

[SQL] COUNT(*) vs COUNT(컬럼) 차이

SQL에서 COUNT 함수는 특정 컬럼이나 테이블의 행 수를 셀 때 사용되지만, 사용 방식에 따라 결과가 달라질 수 있다.내가 헷갈렸던 부분은 COUNT(*) 와 COUNT(컬럼)의 차이를 이해하는 것이였다. 예시 테이블 : OrdersOrderIDCustomerIDOrderDate11012025-03-012102NULL31032025-03-024104NULL51052025-03-03  1. COUNT(*) - 모든 행의 개수를 셈COUNT(*) 는 테이블의 모든 행을 센다. 이때 NULL 값을 포함한 모든 행이 계산된다. 따라서 OrderDate가 NULL인 행도 포함해서 총 5개의 행을 센다.SELECT COUNT(*) FROM Orders; 2. COUNT(OrderDate) – NULL을 제외한 ..