일률적으로 10살 단위로 자를 건가요?
보통는 최소, 최대 쪽에서는 하나로 퉁치는 경향이 있던데요?
(예 : 20세미만, 20대, 30대, 40대, 50대, 60세 이상)
SELECT (FLOOR(age / 10) * 10 ) || '살 이상' || ' ~ ' || (FLOOR(age / 10) * 10 + 10) || '살 미만' AS age_gb , COUNT(*) cnt FROM (SELECT TRUNC(MONTHS_BETWEEN(sysdate, TO_DATE(생년월일, 'yyyymmdd'))/12) age FROM 테이블 ) GROUP BY FLOOR(age / 10) ORDER BY FLOOR(age / 10) ;
SELECT age_gb , COUNT(*) cnt FROM (SELECT CASE WHEN age < 20 THEN '20세미만' WHEN age >= 20 AND age < 30 THEN '20세이상 ~ 30세미만' WHEN age >= 30 AND age < 40 THEN '30세이상 ~ 40세미만' WHEN age >= 40 AND age < 50 THEN '40세이상 ~ 50세미만' WHEN age >= 50 AND age < 60 THEN '50세이상 ~ 60세미만' WHEN age >= 60 THEN '60세이상' END age_gb FROM (SELECT TRUNC(MONTHS_BETWEEN(sysdate, TO_DATE(생년월일, 'yyyymmdd'))/12) age FROM 테이블 ) ) GROUP BY age_gb ORDER BY age_gb ;