Maison > base de données > tutoriel mysql > Comment faire pivoter les métadonnées du produit dans SQL Server 2000 à l'aide d'une fonction JOIN et d'agrégation ?

Comment faire pivoter les métadonnées du produit dans SQL Server 2000 à l'aide d'une fonction JOIN et d'agrégation ?

Patricia Arquette
Libérer: 2025-01-02 18:29:39
original
406 Les gens l'ont consulté

How to Pivot Product Metadata in SQL Server 2000 using a JOIN and Aggregate Function?

Transformation Pivot à l'aide de SQL Server 2000

Problème :

Votre base de données contient deux tables, Produits et Product Meta, avec les structures suivantes :

Products:
- ProductId
- Name

Product Meta:
- ProductId
- MetaKey
- MetaValue
Copier après la connexion

Vous souhaitez transformer ces données dans un ensemble de résultats qui fait pivoter la colonne MetaValue, en fonction de la colonne MetaKey. L'ensemble de résultats souhaité est :

ProductId | Name | A | B | C
Copier après la connexion

Solution :

Bien que les solutions suggérées précédemment ne soient pas optimales, elles mettent néanmoins en avant l'utilisation de fonctions d'agrégation ou de sous-requêtes pour assurer un regroupement valide. Voici une approche alternative :

SELECT
  P.ProductId,
  P.Name,
  MAX(CASE WHEN PM.MetaKey = 'A' THEN PM.MetaValue END) AS A,
  MAX(CASE WHEN PM.MetaKey = 'B' THEN PM.MetaValue END) AS B,
  MAX(CASE WHEN PM.MetaKey = 'C' THEN PM.MetaValue END) AS C
FROM Products AS P
LEFT JOIN ProductMeta AS PM
  ON PM.ProductId = P.ProductId
GROUP BY
  P.ProductId,
  P.Name;
Copier après la connexion

Cette requête rejoint les tables Products et Product Meta, regroupant les résultats par ProductId et Name. La fonction d'agrégation MAX() est utilisée pour extraire la MetaValue maximale pour chaque MetaKey. Cela garantit que seule la MetaValue la plus récente ou la plus récente pour chaque clé est incluse dans l'ensemble de résultats.

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!

source:php.cn
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