PIVOT 演算子を使用してこれを行う方法を次に示します。
入力 (REGID, SESSION_START_DATETIME, USAGEID) を ( select 1 , to_date('7/11/2016', 'mm/dd/yyyy'), 1 から Dual union all select 1 , to_date(' 6/10/2016', 'mm/dd/yyyy'), デュアル ユニオンから 1 をすべて選択 1 , to_date('6/09/2016', 'mm/dd/yyyy'), デュアル ユニオンから 1 をすべて選択 1 , to_date('5/04/2016', 'mm/dd/yyyy'), デュアル ユニオンから 1 個すべてを選択 1 , to_date('5/04/2016', 'mm/dd/yyyy'), デュアルから 1 個union all select 1 , to_date('5/04/2016', 'mm/dd/yyyy'), 1 from dual )select * from ( select regid, session_start_datetime, case when trunc(sysdate) - session_start_datetime 0 ~ 30 の場合'0-30_days_usagecount' が trunc(sysdate) の場合 - session_start_datetime が 31 から 60 の場合、次に '31-60_days_usagecount' が trunc(sysdate) の場合 - session_start_datetime が 61 から 90 の場合、'61-90_days_usagecount' が入力の列として終了します)pivot ( count(session_start_datetime) for col in ( '0-30_days_usagecount', '31-60_days_usagecount', '61-90_days_usagecount' ) ); REGID '0-30_days_usagecount' '31-60_days_usagecount' '61-90_days_usagecount' ---------- ---------------------- -- ---------------------- ----------------------------------- 1 1 2 31 行が選択されました.コード> プレ>