Maison >base de données >tutoriel mysql >Comment puis-je utiliser la fonction de pivot de SQL Server pour transformer les lignes en colonnes?
La fonction PIVOT de SQL Server offre un moyen puissant de restructurer les données, en transformant les lignes en colonnes pour une analyse et un reporting améliorés. Ceci est particulièrement utile lorsque vous devez présenter les données dans un format tabulaire plus convivial.
Imaginez un tableau temporaire contenant les chiffres des ventes, avec des colonnes pour le numéro de magasin, le numéro de semaine et le montant des ventes. Pour afficher ces données avec les magasins répertoriés verticalement et les semaines horizontalement, procédez comme suit :
1. Identifier dynamiquement les numéros de semaine
Étant donné que les numéros de semaine sont variables, nous devons d'abord déterminer les numéros de semaine uniques présents dans l'ensemble de données. Ceci peut être réalisé en utilisant :
<code class="language-sql">SELECT DISTINCT Week FROM yt;</code>
2. Construction de requêtes SQL dynamiques
Ensuite, nous construisons la requête SQL dynamique. Cela implique la création d'une chaîne contenant les noms de colonnes pour l'opération PIVOT. Le code suivant génère cette chaîne :
<code class="language-sql">DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX); SELECT @cols = STUFF((SELECT ',' + QUOTENAME(Week) FROM yt GROUP BY Week ORDER BY Week FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'');</code>
3. Construire la requête PIVOT
Maintenant, nous construisons la requête PIVOT elle-même, en incorporant la chaîne de colonne générée dynamiquement :
<code class="language-sql">SET @query = 'SELECT store,' + @cols + ' FROM ( SELECT store, week, xCount FROM yt ) x PIVOT ( SUM(xCount) FOR week IN (' + @cols + ') ) p;';</code>
4. Exécution de la requête PIVOT
Enfin, exécutez la requête PIVOT dynamique en utilisant :
<code class="language-sql">EXECUTE(@query);</code>
Résultats :
Le résultat sera un tableau affichant les numéros de magasin dans la première colonne et les numéros de semaine comme en-têtes de colonne. Les montants des ventes correspondants rempliront les cellules du tableau, résumant efficacement les données originales.
En utilisant la fonction PIVOT de SQL Server, vous pouvez convertir efficacement les données orientées lignes dans un format de colonnes plus facilement interprété et analysé, simplifiant ainsi les tâches de reporting et d'analyse 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!