📌 HAVING
/* HAVING 절
* GROUP BY 되거나 집계된 데이터를 필터링
*/
SELECT GROUP_NAME,
ROUND(AVG(HEIGHT),2),
MAX(HEIGHT),
MIN(HEIGHT),
AVG(FOOT_SIZE)
FROM artist
GROUP BY GROUP_NAME
HAVING AVG(FOOT_SIZE)>240;
-- SELECT에 선택하지 않아도 필터링을 할 수 있다.
SELECT GROUP_NAME,
ROUND(AVG(HEIGHT),2),
MAX(HEIGHT),
MIN(HEIGHT)
FROM artist
GROUP BY GROUP_NAME
HAVING AVG(FOOT_SIZE)>240;
💡 HAVING은 GROUP BY 없이 단독으로 사용 가능!
SELECT MAX(HEIGHT),
MIN(HEIGHT)
FROM artist
HAVING COUNT(*)>0;
💡 HAVING COUNT(*)>0의 의미
🧐 문득 여기서 HAVING COUNT(*)>0이 뭔지 궁금했다.
🔎 HAVING COUNT(*)>0은 무엇을 검증하는지
- COUNT(*)는 테이블에서 전체 행의 개수를 세는 함수.
- HAVING절은 GROUP BY없이도 사용 가능하며, 집계된 결과에 대한 조건을 필터링할 수 있음.
- COUNT(*)>0은 "테이블에 적어도 한개의 행이 있는지"를 확인하는 역할!
➡️ 즉, 테이블이 비어 있지 않을 경우에만 결과를 반환한다는 의미!
'✏️ SQLD' 카테고리의 다른 글
[SQLD] 스칼라 서브쿼리 (0) | 2025.03.03 |
---|---|
[SQLD] WHERE절과 HAVING절의 차이 (0) | 2025.03.01 |
[SQLD] GROUP BY절, 집계함수, 제약사항 (0) | 2025.03.01 |
[SQLD] WHERE 절: IN, BETWEEN, LIKE, IS NULL (0) | 2025.03.01 |
[SQLD] WHERE 절: 논리 연산자, 연산자 우선순위 (0) | 2025.02.28 |