Maison >base de données >tutoriel mysql >Comment la fonction PIVOT de SQL Server peut-elle transformer des données étendues en un format plus analysable ?

Comment la fonction PIVOT de SQL Server peut-elle transformer des données étendues en un format plus analysable ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-17 11:17:25249parcourir

How Can SQL Server's PIVOT Function Transform Wide Data to a More Analyzable Format?

Utilisation de PIVOT pour transformer des données dans SQL Server

L'opération PIVOT de SQL Server vous permet de transformer des données d'un format large en un format haut , ce qui facilite la synthèse et l'analyse des données. Ceci est particulièrement utile dans les scénarios où vous souhaitez convertir des données organisées en lignes et colonnes dans un format dans lequel chaque colonne représente un attribut spécifique et chaque ligne représente une valeur particulière pour cet attribut.

Un exemple de scénario est la transformation de l'ensemble de données suivant, qui contient des données dans un format large :

Name1 | Name2 | Value
-------|-------|-------
A     | P1     | 1
A     | P2     | 1
A     | P3     | 2
B     | P1     | 3
B     | P2     | 1
B     | P4     | 1

Au format suivant :

       A     B
P1     1     4
P2     1     1
P3     2     NULL
P4     NULL  1

Pour réaliser cette transformation dans SQL Server 2005, le code suivant peut être utilisé :

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName([Name1])
                        FROM myTable FOR XML PATH('') ), 1, 1, '') 


SET @sqlquery = 'SELECT * FROM
      (SELECT Name2, Name1, Value
       FROM myTable ) base
       PIVOT (Sum(Value) FOR [Name1]
       IN (' + @cols + ')) AS finalpivot'

EXECUTE ( @sqlquery )

Ce code assemble dynamiquement une requête PIVOT basée sur les valeurs uniques de la colonne Nom1. Il concatène d'abord les valeurs Name1 distinctes dans une liste séparée par des virgules, qui est ensuite utilisée dans l'instruction PIVOT pour créer les nouvelles colonnes. La fonction d'agrégation SUM() calcule la valeur totale de chaque attribut (Name1) dans chaque ligne (Name2).

Le résultat est un ensemble de données transformé avec le format haut souhaité, où chaque colonne représente un attribut Name1 et chaque La ligne contient la valeur de somme correspondante pour cet attribut. Ce format facilite l'analyse et la synthèse des données en fournissant une vue plus concise et organisée des données.

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