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

SQLでのテーブルのピボット(クロス集計/クロス集計)

    ビル・カーウィンはこれについて言及していますが、これは非常に明確に指摘する価値があると思います:

    SQLはあなたが求めていることを実行しないので、あなたが得るどんな「解決策」も恨みになります。

    知っている 確かに、これは常にOracle 10で実行されます。そうすれば、WalterMittyのクロス集計で実行できる可能性があります。それを行う正しい方法は、クエリとアプリケーションコードの並べ替え順序の最も簡単な組み合わせを使用して、正しくレイアウトすることです。

    • 他のデータベースシステムで動作します
    • 他のレイヤーが壊れるリスクはありません(たとえば、MySQLで255列を超える問題が発生したことを覚えています。インターフェイスライブラリを使用してよろしいですか? db自体と同様に対処しますか?)
    • (通常は)それほど難しくはありません。

    必要に応じて、Content_Row_IDをリクエストするだけです。 ■最初に、CampaignIDの順に必要な行を要求します。 、ContentRowID 、これにより、各(入力された)セルが左から右に行ごとに表示されます。

    追伸

    現代人がSQLが持っているべきであると考えていることはたくさんありますが、それはただそこにありません。これは1つであり、生成された範囲は別の再帰的クロージャであり、パラメトリックORDER BY 、標準化されたプログラミング言語...リストは続きます。 (ただし、確かに、ORDER BYにはトリックがあります。 )



    1. MySQL/MariaDB用のAzureデータベースをオンプレミスサーバーに移行する

    2. MariaDBでのSUBSTRING()のしくみ

    3. MySQL8.0.22での非同期レプリケーションの自動フェイルオーバー

    4. SELECT *[columnAを除く]FROM tableAを使用して列を除外しますか?