GROUP BY, HAVING 사용하기
ORDERS라는 주문 테이블이 있고 각 주문은 고유한 ORDER ID라는 PK를 가졌다.
동일한 고객이 여러 번 주문한 경우가 있다.
여러 번 주문한 고객을 찾기 위해선 어떻게 해야할까?
< ORDERS >
ORDER_ID | CUSTOMER_ID | ORDER_DATE | AMOUNT |
1 | 101 | 2024-04-29 | 100.50 |
2 | 102 | 2024-04-28 | 70.50 |
3 | 103 | 2024-04-28 | 800.00 |
4 | 102 | 2024-04-15 | 120.50 |
5 | 102 | 2024-04-13 | 60.75 |
GROUP BY와 HAVING을 사용하면 된다.
SELECT CUSTOMER_ID, COUNT(*)
FROM ORDERS
GROUP BY CUSTOMER_ID
HAVING COUNT(*) > 1;
- GROUP BY : 데이터를 그룹화(집계)하여 그룹별 건수 및 합계 등을 조회
- HAVING : GROUP BY한 집계 결과를 특정 조건으로 필터링하기 위해 사용
'Oracle' 카테고리의 다른 글
[Oracle] 컬럼명으로 테이블 조회 (0) | 2024.05.14 |
---|