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
Libérer: 2024-12-17 11:17:25
original
244 Les gens l'ont consulté

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
Copier après la connexion

Au format suivant :

       A     B
P1     1     4
P2     1     1
P3     2     NULL
P4     NULL  1
Copier après la connexion

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 )
Copier après la connexion

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!

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