Maison > base de données > tutoriel mysql > Comment faire pivoter dynamiquement les lignes MySQL en colonnes ?

Comment faire pivoter dynamiquement les lignes MySQL en colonnes ?

Mary-Kate Olsen
Libérer: 2025-01-25 13:12:16
original
828 Les gens l'ont consulté

How to Dynamically Pivot MySQL Rows into Columns?

MySQL Dynamic Row Operation

Question:

Focus des données de plusieurs tables et les formant dans une table en perspective de colonnes dynamiques, même si vous ne connaissez pas le nombre exact de colonnes à l'avance.

Requête originale:

Utilisation d'une solution d'instruction de cas:

SELECT partners.name, products.name, COUNT(*) 
FROM sales
JOIN products ON sales.products_id = products.id
JOIN partners ON sales.partners_id = partners.id
GROUP BY sales.partners_id, sales.products_id
LIMIT 0, 30
Copier après la connexion
MySQL n'a pas la fonction de pivot, vous devez donc utiliser une fonction polymère avec une instruction de cas:

<预> La table de perspective dynamique de l'utilisation de l'instruction de pré-procédure:

Afin de gérer le titre de colonne dynamique, vous pouvez utiliser l'instruction de pré-procédure:
select pt.partner_name,
  count(case when pd.product_name = 'Product A' THEN 1 END) as ProductA,
  count(case when pd.product_name = 'Product B' THEN 1 END) as ProductB,
  count(case when pd.product_name = 'Product C' THEN 1 END) as ProductC,
  count(case when pd.product_name = 'Product D' THEN 1 END) as ProductD,
  count(case when pd.product_name = 'Product E' THEN 1 END) as ProductE
from partners pt
left join sales s
  on pt.part_id = s.partner_id
left join products pd
  on s.product_id = pd.prod_id
group by pt.partner_name
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal