SQL(MySQL˙Oracle˙SqlDbx˙Orange)
[ORACLE] 오라클 sql 생년월일로 나이와 연령대 구하기
koos808
2022. 3. 2. 15:25
728x90
반응형
1. (생년월일 기준) 생년월일로 나이 구하기 - 만나이 계산됨
- 많이 사용되는 방법
-- 생년월일 기준 (YYYYMMDD)
SELECT TRUNC(MONTHS_BETWEEN(NOW(), BIRTH)/12) AS AGE
FROM TABLE_NAME;
2. (연도 기준) 생년월일로 나이 구하기
SELECT
TRUNC(MONTHS_BETWEEN(NOW(), TO_DATE(SUBSTR(BIRTH,1,4), 'YYYY'))/12) AS AGE
-- 다른방법
-- TO_NUMBER(SUBSTR(NOW(), 1, 4), 'FM99999999') - TO_NUMBER(SUBSTR(BIRTH, 1, 4), 'FM99999999') AS AGE_연도
FROM TABLE_NAME;
3. 연령대 구하기
- 연령대 기준 5, 10 ... : 10대, 20대, 30대 등등
- /5*5 값을 바꿔서 원하는 연령대 계산 가능
SELECT
-- 5세 연령대 기준 EX) 20~25, 25~30
FLOOR((TRUNC(MONTHS_BETWEEN(NOW(), BIRTH)/12))/5*5 AS 연령대_기존
FLOOR((TRUNC(MONTHS_BETWEEN(NOW(), TO_DATE(SUBSTR(BIRTH,1,4),'YYYY'))/12))/5*5 AS 연령대_연도
FROM TABLE_NAME;
4. 연령대별 COUNT
SELECT 연령대, COUNT(*)
FROM (
SELECT FLOOR((TRUNC(MONTHS_BETWEEN(NOW(), BIRTH)/12))/5*5 AS 연령대
FROM TABLE_NAME
)
GROUP BY 1 ORDER BY 1;
728x90
반응형