Database/MySQL

Group By 쿼리의 활용

BUST 2018. 6. 9. 19:33

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