Pivot -Tabellen im SQL -Server bieten eine leistungsstarke Möglichkeit, Daten von Zeilen auf Spalten zu transponieren. Benutzer können jedoch beim Erstellen der richtigen Abfrage Herausforderungen stellen.
Verwenden Sie die Pivot -Funktion für bekannte Spaltenwerte:
Für vordefinierte Spaltenwerte (in diesem Fall die Anzahl der Wochen) können Sie die Pivot -Funktion direkt verwenden:
select *
from
(
select store, week, xCount
from yt
) src
pivot
(
sum(xcount)
for week in ([1], [2], [3])
) piv;
generieren dynamisch Perspektivespaltenwerte:
Um unbekannte Spaltenwerte (z. B. dynamische Wochen) zu handhaben, kann eine Kombination aus dynamischen SQL- und Fensterfunktionen verwendet werden:
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);
Ergebnis:
Beide Methoden erzeugen das gleiche Ergebnis:
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3