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

Oracle JSON_OBJECT&JSON_ARRAYAGGを使用して複数のリストから個別の値を集計する方法

    1つのDISTINCTを使用します 列の最初のペアをサブクエリしてから、2番目のDISTINCTを使用します 他の列のペアとJOINのサブクエリ 一般的なtest_col1で :

    SELECT JSON_OBJECT (
             'output' VALUE JSON_ARRAYAGG(
               JSON_OBJECT(
                 'common'      VALUE c23.test_col1,
                 'list'        VALUE c23.list,
                 'anotherlist' VALUE c56.anotherlist
               )
             )
           )
    FROM   (
             SELECT test_col1,
                    JSON_ARRAYAGG(
                      JSON_OBJECT(
                        'key1' VALUE test_col2,
                        'key2' VALUE test_col3
                      )
                    ) AS list
             FROM   ( SELECT DISTINCT
                             test_col1, test_col2, test_col3
                      FROM   test_tbl
                      WHERE  test_col4 = 'val7'
             )
             GROUP BY test_col1
           ) c23
           INNER JOIN (
             SELECT test_col1,
                    JSON_ARRAYAGG(
                      JSON_OBJECT(
                        'key1' VALUE test_col5,
                        'key2' VALUE test_col6
                      )
                    ) AS anotherlist
             FROM   ( SELECT DISTINCT
                             test_col1, test_col5, test_col6
                      FROM   test_tbl
                      WHERE  test_col4 = 'val7'
             )
             GROUP BY test_col1
           ) c56
           ON ( c23.test_col1 = c56.test_col1 )
    

    出力:




    1. Oracle 10gでシーケンスの値を毎年自動的に0にリセットするにはどうすればよいですか?

    2. DBMS_OUTPUT.PUT_LINEの出力をファイルにリダイレクトするにはどうすればよいですか?

    3. 複数のクエリを単一のテーブルに出力

    4. PEAR DBエラーコードのリストはどこにありますか?