Gruppierung nach MONAT in SQL
Ich versuche, um gemeinsam eine Tabelle, die ein Datum, YYYY-MM-DD, ziehen Sie nur die Informationen Monat, und gruppieren Sie dann die Monate zusammen als einzelne Zeilen.
Ich habe versucht, mit der MONTH(DATE)
Befehl, mit einem Group by
und Order By
Befehl, und ich bekomme den Monaten wieder für die 4 Jahre, aufgeführt auf der Tabelle. Ich gibt wieder 48 Reihen, aufgelistet 1-12, wiederholte 4 mal. Ich will 1 Rückkehr von 1-12 in Ordnung.
Hier ist der code, den ich bisher haben.
select MONTH(DATE) As "Month"
from DW******.SL****
Group By DATE
Order by DATE
Gerade angefangen mit SQL, so dass ich entschuldige mich für die simple Frage.
Wenn könnte jemand bitte geben Sie mir eine hand. Das ist Db für ich und ich wollte mit CONVERT
aber das funktioniert nicht mit unserem server.
InformationsquelleAutor William | 2013-01-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie nicht verwenden, month(date) in Ihrer Gruppe durch?
genauer gesagt, das problem war, dass Sie die Gruppierung von
DATE
stattMONTH(DATE)
die order by hat nichts zu tun mit der Anzahl der zurückgegebenen ZeilenInformationsquelleAutor Farzad
Müssen Sie die Gruppe von
MONTH(Date)
, nicht DATUMIch denke sein Punkt ist, um Gruppe von
MONTH(DATE)
statt des vollenDATE
korrekt istEr spricht nicht über den Fall des Wortes.
Richtig, ich entschuldige mich. EricZ richtig war. Ich hatte versucht, MONAT(DATUM) in der Group By-Anweisung einmal. Habe ich übersehen, dass ich es brauchte in der Reihenfolge, wie gut. Sehr geschätzt wird.
InformationsquelleAutor EricZ
Einem anderen Ansatz kann Ihnen helfen, im Allgemeinen, wie Sie in mehr komplizierte Abfragen, die Ihnen erlaubt, um psychisch zu brechen Dinge nach unten in Blöcken (oder Stufen).
Kann es in etwa so Aussehen:
Wobei x bezieht sich auf die fullselect1, und x wird verwendet, als AUS der Tabelle in fullselect2. Sie können sich vorstellen dies als Schritt 1 und Schritt 2, wobei der Optimierer kann dies erreichen, aber es wählt.
In deinem Fall hier könnte man sagen
Diesem Konzept ist, während hier nicht notwendig, skaliert sehr gut und kann Ihnen helfen, schreiben, komplexe Abfragen, indem man es in Teile, die sind einfacher zu verstehen.
Wenn man sich diese im Referenz-Handbuch (ich werde einen link in das information center) IBM bezeichnet dies als Common Table Expression. [CTE ]
InformationsquelleAutor WarrenT
Wenn Sie brauchen Monat in Bezug auf Januar, Februar, März, etc, verwenden Sie die folgende Abfrage
SELECT MONTHNAME (CURRENT_TIMESTAMP) from Kunden;
InformationsquelleAutor Vinayak Dornala