Categories : SQL
SQL 예시 - (11) 구간 GROUP화 (feat. GROUP BY)
SQL 구간 GROUP화 예시
1. 나이 구간별 인원수 구하기
SELECT FLOOR(AGE / 10) * 10 AS AGE_GROUP, COUNT(*) AS PEOPLE
FROM USERS
GROUP BY AGE_GROUP
ORDER BY AGE_GROUP;
2. 월별(Year-Month) 매출 집계
SELECT DATE_FORMAT(SALE_DATE, '%Y-%m') AS SALE_MONTH, SUM(AMOUNT) AS TOTAL_SALES
FROM SALES
GROUP BY SALE_MONTH
ORDER BY SALE_MONTH;
3. 급여 구간별 직원수 구하기
SELECT FLOOR(SALARY / 1000000) * 1000000 AS SALARY_GROUP, COUNT(*) AS EMPLOYEES
FROM EMPLOYEES
GROUP BY SALARY_GROUP
ORDER BY SALARY_GROUP;
4. 코드 설명
구간 그룹화를 나타내게 하는 방법
FLOOR(9900 / 10000) * 10000 = 0
9900 / 10000
를 진행 할 경우 답은0.99
FLOOR
를 진행하면0
을 반환 (내림)10000
을 곱하면0
으로 지정됨,GROUP BY
을 진행하면0
의 그룹으로 속함
FLOOR(19000 / 10000) * 10000 = 1.9
19000 / 10000
를 진행 할 경우 답은1.9
FLOOR
를 진행하면1
을 반환 (내림)10000
을 곱하면10000
으로 지정됨,GROUP BY
을 진행하면10000
의 그룹으로 속함