GROUP BY と複数のデータ ID を使用して MySQL クエリ結果をピボットする方法

Barbara Streisand
リリース: 2024-11-07 17:09:03
オリジナル
813 人が閲覧しました

How to Pivot MySQL Query Results with GROUP BY and Multiple Data IDs?

GROUP BY を使用した MySQL PIVOT クエリの結果

問題:

データベース テーブルを次のように変換しています行を列として表示し、指定したキー (タイムスタンプなど) でデータをグループ化しながら、各キーのすべてのデータ値が対応する列に表示されるようにします。

提案されたクエリ:

SELECT d.data_timestamp,
       SUM(IF(data_id = 1, data_value, 0)) AS 'input_1',
       SUM(IF(data_id = 2, data_value, 0)) AS 'input_2',
       ...
       SUM(IF(data_id = 20, data_value, 0)) AS 'input_20'
FROM data
GROUP BY d.data_timestamp
ORDER BY d.data_timestamp ASC
ログイン後にコピー

説明:

  • 外部クエリはデータ テーブルから個別のデータ タイムスタンプを選択します。
  • 各データ タイムスタンプについて、クエリはSUM() 集計内の IF() 関数を使用して、各 data_id のデータ値の合計を計算します。
  • data_id が目的の ID (たとえば、input_1 の場合は 1) と一致する場合、対応するデータ値が合計に追加されます。 ;それ以外の場合は 0 が追加されます。
  • この計算は最大 20 までの data_id ごとに繰り返され、異なる data_id ごとに列が作成されます。
  • 最終結果はデー​​タのタイムスタンプによってグループ化され、昇順に並べられます。 order.

制限事項:

  • このアプローチでは、クエリ内の各 data_id の明示的な合計が必要ですが、多数の ID。
  • 特定の要件とデータ構造に応じて、CASE またはマルチレベル JOIN を含む代替アプローチを使用できます。

以上がGROUP BY と複数のデータ ID を使用して MySQL クエリ結果をピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!