SQL)世代データ抽出

784 ワード

これは、Oracleを基準として年齢層を抽出する方法です.
基本的には、特定の商品や製品を購入する各年齢層のデータを抽出する際に使用することができる.
Trunc()とTO CHAR()とdateの演算を使用します.
1つ目の方法は次のとおりです.
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;
Oraclesqlでは、日付と日付を削除すると残りの日数が返され、365で除算すると年齢が表示されます.
従って現在の日付SYSDATEから生年月日を除いて365に分けてTRUNCで整数の1位にカットして終了し、
2つ目の方法は以下の通りです.
SELECT  trunc((TO_CHAR(SYSDATE, 'YYYY') - TO_CHAR(bm.MEMBER_BIRTH, 'YYYY') ), -1) 
FROM B7_MEMBER bm;
TO CHARを使用すると、1番目のパラメータであるDATEが2番目のパラメータであるフォーマット文字列に変換されます.また、「-」演算子を使用すると、年齢層を抽出でき、上記で同じtruncを使用すると、年齢層を抽出できます.