SQL) 연령대 데이터 추출

청룡·2022년 2월 12일
0

오라클 기준으로 연령대를 추출하는 방법이다.

기본적으로 특정 상품이나, 제품을 구매한 연령별 데이터를 추출할 때 사용할 수 있을 것 같다.

사용한 것은 Trunc(), TO_CHAR() 와 date의 연산이다.

첫번째 방법은 다음과 같다.

SELECT age, count(*) AS cnt FROM 
(SELECT TRUNC( (sysdate - bm.MEMBER_BIRTH)/365, -1) AS age 
FROM B7_MEMBER bm 
WHERE member_no IN (SELECT MEMBER_NO FROM B7_ORDER WHERE course_no = 60)) 
GROUP BY age;

오라클 sql에서는 날짜와 날짜를 빼게 되면 남은 일수를 리턴해주는데 이 값을 365로 나누게 되면 연령이 나오게 된다.
그러니 현재 날짜인 SYSDATE에서 생년월일을 빼고 365로 나눈뒤 TRUNC를 통해 정수 첫째자리까지 절삭을 해주면 끝,

두번째 방법은 다음과 같다.

SELECT  trunc((TO_CHAR(SYSDATE, 'YYYY') - TO_CHAR(bm.MEMBER_BIRTH, 'YYYY') ), -1) 
FROM B7_MEMBER bm;

TO_CHAR를 사용하게되면 첫번째인자로 들어간 DATE가 두번째 인자인 포맷으로 문자열로 변환을 해주게 된다. 또한 이 문자열을 '-'연산자를 사용하게 되면 연령대를 추출할 수 있게되고 위에 trunc를 동일하게 사용하면 연령대를 추출할 수 있게 된다.

profile
새대갈🕊️에서 돌고래🐬

0개의 댓글

관련 채용 정보