"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment pouvez-vous utiliser des données de groupe par pour pivoter dans MySQL?

Comment pouvez-vous utiliser des données de groupe par pour pivoter dans MySQL?

Publié le 2025-05-01
Parcourir:531

How can you use GROUP BY to Pivot Data in MySQL?

Pivoting des résultats de la requête en utilisant le groupe mysql par

Dans une base de données relationnelle, les données pivotant se réfèrent au réarrangement des lignes et des colonnes pour améliorer la visualisation des données. Ici, nous abordons un défi commun: transformer les données de la ligne basée sur des colonnes basées sur des colonnes à l'aide de groupes. Considérons la requête suivante:

Sélectionnez d.data_timestamp,

sum (cas quand data_id = 1 alors data_value else 0 fin) en tant que 'input_1',

sum (case when data_id = 2 alors data_value else 0 fin) as 'input_2'

from [alors&] Données

Groupe par
d.data_timestamp
ordre par
d.data_timestamp asc;
pre>


explication



Les valeurs de query de Query répègnent les valeurs de données_time_time data_timestamp.

Au sein de chaque groupe, il calcule la somme de data_values ​​pour les données Data_id correspondantes (par exemple, la fonction entrée pour les valeurs manquantes par déficience pour 0 pour les valeurs null. data_timestamp associé à la somme de data_values ​​pour le data_id spécifié.

    Approches alternatives
  • MySQL propose également des méthodes alternatives pour les données pivotantes. Ces approches incluent l'utilisation de la fonction if () ou des jointures de niveau multiple. = 2, data_value, 0)) as 'input_2'
  • de
  • data
  • groupe par
  • d.data_timestamp
  • ordre par
d.data_timestamp asc;

pre>

multiple Join

  select  data_timestamp,  d01.data_value en tant que 'entrée_1', 

d02.data_value en tant que 'intrut_2'
de
(&&&]
D.Data À partir des données

) comme d
gauche join
data as d01
on
d01.data_timestamp = d.data_timestamp et d01.data_id = 1
gauche join
d02

sur

d02.data_ d.data_timestamp et d02.data_id = 2 Ordre par d.data_timestamp asc;

pre>



Conclusion


Les résultats du groupe de MySQL fournissent un mécanisme puissant pour le pivotage de quai. Les techniques de jointure de cas, IF () et plusieurs niveaux offrent une flexibilité dans la gestion des données et pour s'adapter à diverses structures de données. Le choix de l'approche optimale dépend des exigences spécifiques et des considérations de performances.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3