这个例子可以帮助:
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