Group By
- 테이블에 저장되어 있는 데이터를 분리를 할때 사용되는 SQL Keyword
- Having 절을 이용하여 Group By시에 조건을 줄수가 있다.
기본 Synatx
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
Sample Query
- Count를 이용하는 방법 : 하나의 key를 기준으로 가지고 있는 갯수가 2개 이상인 결과를 얻는 쿼리
SELECT userId, count(userId) as cnt
FROM user_orders
GROUP BY userId
HAVING count(userId) > 1
- Count를 이용하는 방법 : user log를 이용하여 다른 ip와 다른 useragnet를 사용하는 경우의 데이터를 얻는 쿼리
SELECT userId
FROM user_logs
GROUP BY userId
HAVING count(distinct ip) > 1
and count(distinct useragent) > 1
- Sum을 이용하는 방법 : 총 숙박하는 총일수가 10일이상인 데이터를 얻는 쿼리
SELECT roomId, sum(endDay-lastDay)
FROM room_history
GROUP BY roomId
HAVING SUM(endDay-lastDay) > 10
'Database > MySQL' 카테고리의 다른 글
Mysql Index HInts (0) | 2018.07.24 |
---|---|
인덱스 설계에 필요한 선택도와 카디널리티 (0) | 2018.06.11 |
MySQL 기본 Query 정리 (0) | 2018.02.11 |
커버링 인덱스 (0) | 2018.02.10 |
Timestamp and Datetime (0) | 2017.07.02 |