Heim  >  Artikel  >  Datenbank  >  Wie kann ich Abfrageergebnisse in MySQL mithilfe der GROUP BY-Klausel schwenken?

Wie kann ich Abfrageergebnisse in MySQL mithilfe der GROUP BY-Klausel schwenken?

DDD
DDDOriginal
2024-11-06 11:27:02890Durchsuche

How can I pivot query results in MySQL using the GROUP BY clause?

Pivotieren von Abfrageergebnissen mit GROUP BY in MySQL

Durch die Umstrukturierung von Daten von Zeilen in Spalten kann das Pivotieren dazu beitragen, die Datenvisualisierung und -analyse zu verbessern. Um Abfrageergebnisse basierend auf einer bestimmten Spalte zu Pivotieren, können wir die GROUP BY-Klausel in MySQL verwenden.

Betrachten Sie eine Beispieltabelle mit dem folgenden Schema:

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

Zur Pivotierung dieser Daten basierend auf Für die Spalte „data_timestamp“ können wir eine Kombination aus der CASE-Anweisung und der Aggregatfunktion SUM verwenden:

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

Diese Abfrage fasst effektiv die Spalte „data_value“ für jeden eindeutigen data_timestamp zusammen und erstellt neue Spalten für jede eindeutige data_id (in diesem case, input_1 und input_2).

Alternativ können wir auch die IF-Anweisung verwenden, um das gleiche Ergebnis zu erzielen:

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

Beide Methoden bieten eine effektive Möglichkeit, Abfrageergebnisse mit zu Pivotieren die GROUP BY-Klausel in MySQL, die eine flexiblere und informativere Datenanalyse ermöglicht.

Das obige ist der detaillierte Inhalt vonWie kann ich Abfrageergebnisse in MySQL mithilfe der GROUP BY-Klausel schwenken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn