wird Dieses Beispiel helfen:
create table d1
(event_date date, event_description varchar2(100));
insert into d1 values (sysdate,'Phone Call');
insert into d1 values (sysdate,'Letter');
insert into d1 values (sysdate-50,'Interview');
insert into d1 values (sysdate-50,'Dinner with parents');
insert into d1 values (sysdate-100,'Birthday');
insert into d1 values (sysdate-100,'Holiday');
insert into d1 values (sysdate-100,'Interview');
insert into d1 values (sysdate-100,'Phone Call');
commit;
select * from d1;
EVENT_DATE EVENT_DESCRIPTION
------------------------- -----------------------------------------------
04-MAR-10 14.47.58 Phone Call
04-MAR-10 14.47.58 Letter
13-JAN-10 14.47.58 Interview
13-JAN-10 14.47.58 Dinner with parents
24-NOV-09 14.47.58 Birthday
24-NOV-09 14.47.58 Holiday
24-NOV-09 14.47.58 Interview
24-NOV-09 14.47.58 Phone Call
8 rows selected
Sie können sehen, dass Nov-09 der einzige Monat ist, die mehr als drei Ereignisse.
Zurück zu Ihrer ursprünglichen Frage, die war Und zurück, wenn für einen Monat, die Summen zählen mehr als 3. Das folgende SQL-Aggregat funktioniert.
select trunc(event_date,'MONTH'),count('x') from d1
having count('x') > 3 group by trunc(event_date,'MONTH')
Alternativ Verwendung to_char den Datumstyp auf einen Char mit einem MON-YYYY Bild zu konvertieren, wie folgt:
select to_char(trunc(event_date,'MONTH'),'MON-YYYY') month,
count('x') no_of_occurances from d1 having count('x') > 3 group trunc(event_date,'MONTH')
In Ihrem Beispiel nehme ich an meinen Sie September und nicht November. Können Sie uns ein Beispiel für die Ausgabe zeigen, die Sie sehen möchten? – orandov
Die Ausgabe muss die Anzahl und idealerweise der Monat sein. Zum Beispiel (AUG, 14), wenn es 14 Datensätze für den August des gleichen Jahres gibt. Offensichtlich. – Sheldon
Bitte fügen Sie 'Orakel' Tag zu Ihrer Frage hinzu :-D – bic