2016-07-21 9 views
1

Ich bin relativ neu zu SQL und Aggregatfunktionen.Ausgabe von mehreren Aggregatfunktionen als Zeilen anstelle von Spalten

Ich habe diese Abfrage, und ich möchte nur den maximalen Wert für jeden Monat.

SELECT max(case when LogDate < '2016-06-01' and LogDate >= '2016-05-01' THEN value end), 
     max(case when LogDate < '2016-07-01' and LogDate >= '2016-06-01' THEN value end), 
     max(case when LogDate < '2016-08-01' and LogDate >= '2016-07-01' THEN value end) 
FROM RawData 

Es funktioniert, aber der Ausgang in einem extra Spalte für jeden Monat gesetzt wird, ist es eine Möglichkeit, die Ausgabe als Zeilen in der gleichen Spalte, anstatt zu machen?

Ich benutze SQL Server 2012

Antwort

4

Dies ist sehr einfach.

Die "natürliche" Ausgabe ist in Zeilen. Der Code in Ihrer Frage besteht darin, ihn über Spalten zu drehen.

SELECT YEAR(LogDate) AS Year, 
     MONTH(LogDate) AS Month, 
     MAX(value) AS MaxValue 
FROM RawData 
WHERE LogDate >= '2016-05-01' AND LogDate < '2016-08-01' 
GROUP BY YEAR(LogDate), 
     MONTH(LogDate) 
+0

Wusste nicht über die Monats- und Jahresfunktionen, danke! –

Verwandte Themen