Maison >base de données >tutoriel mysql >Comment transformer un ensemble de résultats MySQL en tableau croisé dynamique à l'aide de l'agrégation conditionnelle ?

Comment transformer un ensemble de résultats MySQL en tableau croisé dynamique à l'aide de l'agrégation conditionnelle ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-03 19:44:14161parcourir

How to Transform a MySQL Result Set into a Pivot Table Using Conditional Aggregation?

Transformation de tableau croisé dynamique dans MySQL

Vous avez un ensemble de résultats dans MySQL avec plusieurs lignes partageant le même ID mais différents types et désignations, et vous souhaitez le transformer en un format de tableau croisé dynamique, où les types deviennent des colonnes et les désignations deviennent des valeurs de ligne dans ces colonnes. Voici comment y parvenir :

La solution consiste à faire pivoter les données, ce que l'on appelle la création d'un tableau croisé dynamique. Le processus implique :

  1. Préparer la requête :

    SELECT ID, 
    MAX(CASE Type WHEN 202 THEN Degignation END) AS `202`
    MAX(CASE Type WHEN 234 THEN Degignation END) AS `234`
    MAX(CASE Type WHEN 239 THEN Degignation END) AS `239`
    Email
    FROM mytable
    GROUP BY ID, Email
  2. Interpréter la requête :

    • La requête utilise l'agrégation conditionnelle avec l'expression CASE pour attribuer désignations aux colonnes de type correspondantes (202, 234, 239).
    • La fonction MAX agrège les désignations au sein de chaque groupe d'ID et d'E-mail.
    • La clause GROUP BY combine les résultats en fonction de l'ID et Email pour créer le tableau croisé dynamique format.

Remarque :

Il est important de noter que la requête suppose que vous connaissez à l'avance les valeurs de type distinctes. En SQL, les définitions de colonnes doivent être corrigées lors de la préparation de la requête. Si vous disposez d'un ensemble variable de valeurs de type, vous devrez utiliser une requête dynamique ou une procédure stockée pour générer la requête appropriée au moment de l'exécution.

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:
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