Les tables de pivot dans SQL Server fournissent un moyen puissant de transposer les données des lignes aux colonnes. Cependant, les utilisateurs peuvent rencontrer des défis lors de la construction de la bonne requête.
Utilisez la fonction pivot pour les valeurs de colonne connues:
Pour les valeurs de colonne prédéfinies (dans ce cas, le nombre de semaines), vous pouvez utiliser directement la fonction pivot:
select *
from
(
select store, week, xCount
from yt
) src
pivot
(
sum(xcount)
for week in ([1], [2], [3])
) piv;
générer dynamiquement les valeurs de colonne de perspective:
Pour gérer les valeurs de colonne inconnues (telles que les semaines dynamiques), une combinaison de fonctions SQL et de fenêtre dynamiques peut être utilisée:
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,'')
set @query = 'SELECT store,' @cols ' from
(
select store, week, xCount
from yt
) x
pivot
(
sum(xCount)
for week in (' @cols ')
) p '
execute(@query);
résultat:
Les deux méthodes produisent le même résultat:
| 101 | 138 | 282 | 220 |
| 102 | 96 | 212 | 123 |
| 105 | 37 | 78 | 60 |
| 109 | 59 | 97 | 87 |
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3