sql >> データベース >  >> RDS >> Oracle

四半期に月を分割し、月をグループ化する方法

    試したソリューションの問題は、ステップが欠落していることです。

    四半期が「標準」四半期から1か月ずれている場合は、日付、任意の日付を指定して、日付を1か月前に進める必要があります。次に 四半期に切り捨ててから、1か月引き戻します。手順2と3を実行しましたが、手順1がありません。

    with
      inputs ( dt ) as (
        select to_date('02-Jan-18', 'dd-Mon-yy') from dual union all
        select to_date('02-Feb-18', 'dd-Mon-yy') from dual union all
        select to_date('05-Mar-18', 'dd-Mon-yy') from dual union all
        select to_date('08-Apr-18', 'dd-Mon-yy') from dual union all
        select to_date('05-May-18', 'dd-Mon-yy') from dual union all
        select to_date('05-Jun-18', 'dd-Mon-yy') from dual union all
        select to_date('05-Jul-18', 'dd-Mon-yy') from dual union all
        select to_date('09-Aug-18', 'dd-Mon-yy') from dual union all
        select to_date('10-Sep-18', 'dd-Mon-yy') from dual union all
        select to_date('11-Oct-18', 'dd-Mon-yy') from dual union all
        select to_date('11-Nov-18', 'dd-Mon-yy') from dual union all
        select to_date('11-Dec-18', 'dd-Mon-yy') from dual
      )
    select dt,
           add_months(trunc(add_months(dt, 1), 'q'), -1) as qtr
    from   inputs;
    
    DT          QTR     
    ---------   ---------
    02-Jan-18   01-Dec-17
    02-Feb-18   01-Dec-17
    05-Mar-18   01-Mar-18
    08-Apr-18   01-Mar-18
    05-May-18   01-Mar-18
    05-Jun-18   01-Jun-18
    05-Jul-18   01-Jun-18
    09-Aug-18   01-Jun-18
    10-Sep-18   01-Sep-18
    11-Oct-18   01-Sep-18
    11-Nov-18   01-Sep-18
    11-Dec-18   01-Dec-18
    


    1. SQLServerデータベーステーブルのエクスポートおよびインポートメソッド

    2. WHEREとHAVINGのセマンティックの違いは何ですか?

    3. 表2から表1を更新

    4. 最後の行からmysqlテーブルを検索します