2017-05-15 2 views
0

Ich habe eine verrückte Anzahl von Zeilen, die Epoche Zeit verwendet. id, customerid, orderid, udtimePostgreSQL-Gruppe nach Epochenmonat

Auf meinem Schreibtisch ist jetzt, eine Admin-Seite zu bauen, die es anderen erlaubt, schnell durch diesen riesigen Haufen von Reihen zu waten.

Sie wollen in der Lage sein, Jahr und Monat zu wählen und diese Liste zu erhalten.

Das bedeutet: Wählen Sie 2016 und April, die alle IDs vom April-16 zurückgeben sollte.

Dies kann in einem intelligenten kühlen SQL-Satz getan werden. Dorthin kommst du. Ich arbeite daran und mache Fortschritte, aber ich bin mir ziemlich sicher, dass ihr alle so viel schneller seid als ich. :)

+0

Bitte ** [EDIT] ** Ihre Frage und fügen Sie einige Beispieldaten und die erwartete Ausgabe basierend auf diesen Daten. [** Formatierter Text **] (http://stackoverflow.com/help/formatting) bitte, [** keine Screenshots **] (http://meta.stackoverflow.com/questions/285551/why-may -I-nicht-Upload-Bilder-of-Code-auf-so-wenn-eine Frage zu stellen/285557 # 285557). ** [Bearbeiten] ** Ihre Frage nicht Code oder zusätzliche Informationen in Kommentaren. –

Antwort

1

konvertieren „April 2016“ zu einer Unix-Epoche Verwendung make_date() und extract()

extract(epoch from make_date(2016,4,1)) 

Sie auch eine Obergrenze für eine where-Klausel muß die in der Regel die ersten des nächsten Monats sein würde:

extract(epoch from make_date(2016,4,1) + interval '1' month) 

So würde Ihre SQL-Anweisung so etwas wie dieses:

select ... 
from ... 
where uxtime >= extract(epoch from make_date(2016,4,1)) 
    and uxtime < extract(epoch from make_date(2016,4,1) + interval '1' month); 

Eine etwas kürzere Weg des Schreibens wäre:

select ... 
from ... 
where to_char(to_timestamp(uxtime), 'yyyy-mm') = '2016-04' 

Die oben wird jedoch ein viel langsamer die die erste Lösung, weil es kann nicht‘auf die Verwendung eines Index machen uxtime

Sie könnte einen Index auf to_char(to_timestamp(uxtime), 'yyyy-mm') erstellen, wenn Sie wirklich diese Lösung bevorzugen, um die Abfrage zu beschleunigen.

Verwandte Themen