這個例子可以幫助:
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
你可以看到,NOV-09是唯一的這一個月超過3個事件。
再回頭來看你原來的問題,這是而且如果一個月回來,那算的總數超過3。以下SQL聚合將起作用。
select trunc(event_date,'MONTH'),count('x') from d1
having count('x') > 3 group by trunc(event_date,'MONTH')
另外,使用TO_CHAR,將日期類型轉換爲字符與MON-YYYY圖片如下:
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')
在你的例子,我假定你的意思是九月和十一月沒有。你能向我們展示一個你想看到的輸出的例子嗎? – orandov 2010-03-03 23:28:48
輸出必須是計數,最好是月份。 例如,(8月14日)是否有同年8月份的14條記錄。明顯。 – Sheldon 2010-03-03 23:34:43
請在您的問題中添加'oracle'標籤:-D – bic 2010-03-03 23:46:06