P粉3669463802023-08-22 00:09:42
これは基本的にピボット テーブルです。
この関数の実装方法に関する詳細なチュートリアルは、次の場所にあります: http://www.artfulsoftware.com/infotree/qrytip.php?id=78
この記事を読んで、ニーズに合わせてソリューションを適応させることをお勧めします。
更新
上記のリンクは現在利用できなくなっているため、ここで mysql ピボット テーブルの答えを探している人のために追加情報を提供する必要があると感じました。これには多くの情報が含まれているので、すべてをここにコピーするつもりはありません (言うまでもなく、彼らの膨大な知識をコピーしたくありません)。しかし、SQL でピボット テーブルを操作する方法についていくつかの提案をします。 peku が提起した質問はその一例です。
たぶんリンクはすぐに復元されるでしょう、私はそれをたどり続けます。
スプレッドシートメソッド...
多くの人は、この目的のために MSExcel、OpenOffice などのスプレッドシート ツールを使用するだけです。これは有効な解決策です。そこにデータをコピーし、GUI が提供するツールを使用して問題を解決するだけです。
しかし...これは問題の核心ではなく、データをスプレッドシートにインポートする方法やスケーリングの問題など、いくつかの欠点につながる可能性さえあります。
SQL 方法...
彼のテーブルが次のようになっていると仮定します:
リーリー次に、彼/彼女が希望するテーブルを見てください:
リーリー 行 (EMAIL
、PRINT x ページ
) は条件を表します。主なグループは company_name
ごとにグループ化されます。
条件を設定するには、CASE
ステートメントを使用することに似ています。何かでグループ化するには...GROUP BY
を使用します。
このピボット テーブルを提供する基本的な SQL は次のようになります:
リーリーこれにより、望ましい結果がすぐに得られるはずです。このアプローチの主な欠点は、ピボット テーブルにさらに多くの行を含める場合、SQL ステートメントでより多くの条件を定義する必要があることです。
これも処理できるため、準備されたステートメント、ルーチン、カウンターなどを使用する傾向があります。
このトピックに関する追加リンク: