2017-07-18 5 views
0

Ich habe eine Abfrage, wie untenSQL: Führen Sie eine Abfrage für Datumsbereich aber Datum weise

select count(*) from schema.tablename where columnname 
Between To_Timestamp ('2017-07-01 00:00:00.000000','YYYY-MM-DDHH24:MI:SS.FF') And 
To_Timestamp ('2017-07-01 23:59:59.000000','YYYY-MM-DDHH24:MI:SS.FF') and column_2='D' order by columnname desc; 

Wenn ich gleiche Abfrage auszuführen haben die Statistiken vom 1. Juli - 17. Juli als Tag weise dann sammle ich muss die Abfrage 17-mal ausführen.

Gibt es eine Möglichkeit, ich kann das Datum iterieren, so dass ich Start-und Enddatum geben kann und Abfrage wird Anzahl der Zeilen Tag weise abrufen. Zum Beispiel wie folgt:

Date  Number of rows 
7/1/2017 3865 
7/2/2017 2981 
7/3/2017 21391 

Vielen Dank.

+0

Oracle-Fehler kommen von Oracle, nicht MySQL. –

Antwort

0

ich Sie denken wollen:

select date(column_created), count(*) 
from schema.tablename 
group by date(column_created) 
order by date(column_created) desc; 

Oracle Fehler kommen von Oracle, MySQL nicht. Die Syntax in Oracle ist:

select trunc(column_created), count(*) 
from schema.tablename 
group by trunc(column_created) 
order by trunc(column_created) desc; 
+0

Aber würde es Statistiken von allen Daten geben? Wenn ich meine Suche auf bestimmte Daten beschränken möchte? –

+0

Ich habe Sie vielleicht verwirrt mit der Bedeutung weniger Namenskonventionen Ich habe für Spaltennamen gewählt, aber ich habe jetzt korrigiert. Bitte überprüfen Sie meinen Beitrag noch einmal. –

+0

@ Zehn-Münze. . . Sie können noch ein 'where' hinzufügen, um den gewünschten Datumsbereich zu erhalten. –

Verwandte Themen