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

複数の行を集計せずに単一の行に結合する [Oracle]

    3 つの列があることがわかっている場合は、それらを列挙して集計します。

    select max(case when seqnum = 1 then type end) as type1,
           max(case when seqnum = 1 then date end) as date1,
           max(case when seqnum = 1 then amount end) as amount1,
           max(case when seqnum = 2 then type end) as type2,
           max(case when seqnum = 2 then date end) as date2,
           max(case when seqnum = 2 then amount end) as amount2,
           max(case when seqnum = 3 then type end) as type3,
           max(case when seqnum = 3 then date end) as date3,
           max(case when seqnum = 3 then amount end) as amount3       
    from (select t.*, rownum as seqnum
          from t
         ) t;
      

    返される列の数がわからない場合は、動的 SQL を使用する必要があります (execute immediate ).




    1. グローバル一時テーブル

    2. MySQL Workbenchレポートは、このサーバーバージョンエラーのこの位置では無効です

    3. Usingtemporaryを使用してmysqlパフォーマンスの計画を説明します。 filesortの使用;インデックス条件の使用

    4. Oracle、カーソルを開き、多数の列の 1 つを変数に選択する方法