Maison >base de données >tutoriel mysql >Comment faire pivoter les données dans SQL Server 2000 à l'aide de l'agrégation conditionnelle ?

Comment faire pivoter les données dans SQL Server 2000 à l'aide de l'agrégation conditionnelle ?

DDD
DDDoriginal
2025-01-01 12:35:12160parcourir

How to Pivot Data in SQL Server 2000 Using Conditional Aggregation?

Pivotement des données dans SQL Server 2000

Le pivotement des données fait référence au processus de transformation d'un ensemble de données d'un format vertical orienté colonnes vers un format format horizontal orienté lignes. En d'autres termes, cela vous permet de faire pivoter les données dans un tableau afin que les colonnes deviennent des lignes et vice versa.

Considérez les deux tableaux suivants :

  • Produits

    ProductId Name
    1 Product A
    2 Product B
  • Produit Meta

    ProductId MetaKey MetaValue
    1 A Value A for Product A
    1 B Value B for Product A
    1 C Value C for Product A
    2 A Value A for Product B
    2 B Value B for Product B
    2 C Value C for Product B

Vous souhaitez obtenir un ensemble de résultats qui affiche les noms de produits sous forme de lignes et les clés méta sous forme de colonnes, avec les méta-valeurs correspondantes dans chaque cellule :

ProductName Meta A Meta B Meta C
Product A Value A for Product A Value B for Product A Value C for Product A
Product B Value A for Product B Value B for Product B Value C for Product B

Pour réaliser ce pivot, vous pouvez utiliser une combinaison d'agrégation conditionnelle et de l'instruction CASE dans un SELECT déclaration :

SELECT
    P.ProductId,
    P.Name,
    MIN(CASE WHEN PM.MetaKey = 'A' THEN PM.MetaValue END) AS MetaA,
    MIN(CASE WHEN PM.MetaKey = 'B' THEN PM.MetaValue END) AS MetaB,
    MIN(CASE WHEN PM.MetaKey = 'C' THEN PM.MetaValue END) AS MetaC
FROM
    Products AS P
INNER JOIN
    ProductMeta AS PM
    ON PM.ProductId = P.ProductId
GROUP BY
    P.ProductId,
    P.Name;

Cette requête regroupera correctement les lignes par ID et nom de produit et récupérera les méta-valeurs souhaitées pour chaque clé.

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