데이터베이스(DB)
데이터베이스(DB) - GROUP BY와 HAVING의 문법과 주의사항(예시)
yes or yes
2017. 8. 14. 15:46
반응형
문법 | 주의사항 |
GROUP BY <속성> | GROUP BY로 투플을 그룹으로 묶은 후 SELECT 절에는 GROUP BY에서 사용한 <속성>과 집 계함수만 나올 수 있다. § 맞는 예 SELECT custid, SUM(saleprice) FROM Orders GROUP BY custid; • 틀린 예 SELECT bookid, SUM(saleprice) /* SELECT 절에 bookid 속성이 올 수 없다 */ FROM Orders GROUP BY custid; |
HAVING <검색조건> | WHERE 절과 HAVING 절이 같이 포함된 SQL 문은 검색조건이 모호해질 수 있다. HAVING 절은 ① 반 드시 GROUP BY 절과 같이 작성해야 하고 ② WHERE 절보다 뒤에 나와야 한다. 그리고 ③ <검색조건> 에는 SUM, AVG, MAX, MIN, COUNT와 같은 집계함수가 와야 한다. • 맞는 예 SELECT custid, COUNT(*) AS 도서수량 FROM Orders WHERE saleprice >= 8000 GROUP BY custid HAVING count(*) >= 2; • 틀린 예 SELECT custid, COUNT(*) AS 도서수량 FROM Orders HAVING count(*) >= 2 /* 순서가 틀렸다 */ WHERE saleprice >= 8000 GROUP BY custid; |
반응형