koos808

[ORACLE] 오라클 sql 생년월일로 나이와 연령대 구하기 본문

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
반응형
Comments