MySQL で GROUP BY を使用したクエリ結果のピボット
ピボットは、データを行から列に再構築することで、データの視覚化と分析を向上させるのに役立ちます。特定の列に基づいてクエリ結果をピボットするには、MySQL の GROUP BY 句を使用できます。
次のスキーマを持つサンプル テーブルを考えてみましょう:
data_id data_timestamp data_value -------------------------------------------- 1 2011-07-07 00:01:00 0.400 1 2011-07-07 00:02:00 0.500 1 2011-07-07 00:03:00 0.600 1 2011-07-07 00:04:00 0.700 2 2011-07-07 00:01:00 0.100 2 2011-07-07 00:02:00 0.200 2 2011-07-07 00:03:00 0.250 2 2011-07-07 00:04:00 2.300
このデータを以下に基づいてピボットするにはdata_timestamp 列では、CASE ステートメントと SUM 集計関数を組み合わせて使用できます。
SELECT d.data_timestamp , SUM( CASE WHEN data_id = 1 THEN data_value ELSE 0 END ) AS 'input_1' , SUM( CASE WHEN data_id = 2 THEN data_value ELSE 0 END ) AS 'input_2' FROM data GROUP BY data_timestamp ORDER BY data_timestamp ASC
このクエリは、一意の data_timestamp ごとに data_value 列を効果的に要約し、個別の data_id ごとに新しい列を作成します (この例ではcase、input_1、input_2)。
また、IF ステートメントを使用して同じ結果を達成することもできます。
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' FROM data GROUP BY data_timestamp ORDER BY data_timestamp ASC
これらの方法は両方とも、次を使用してクエリ結果をピボットする効果的な方法を提供します。 MySQL の GROUP BY 句により、より柔軟で有益なデータ分析が可能になります。
以上がGROUP BY 句を使用して MySQL でクエリ結果をピボットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。