我在Oracle中有一个表格列:[DATEID date,COUNT_OF_PHOTOS int] 此表基本上表示每天上传的照片数量。
我的查询总结了每月上传的照片数量:
select extract(year from dateid) as year, extract(month from dateid) as month, count(1) as Photos
from picture_table
group by extract(year from dateid), extract(month from dateid)
order by 1, 2
这就是我想要的,但是我想在每个月的月初运行这个查询,比如说07-02-2012,并且所有数据都排除当前月份。如何添加WHERE子句,忽略日期等于当前年份+月份的所有条目?
答案 0 :(得分:1)
这是一种方式:
where to_char(dateid, 'YYYY-MM') <> to_char(sysdate, 'YYYY-MM')
答案 1 :(得分:1)
保留dateid
上可能包含的任何索引编制策略:
select extract(year from dateid) as year, extract(month from dateid) as month, count(1) as Photos
from picture_table
WHERE (dateid < TRUNC(SYSDATE,'MM') OR dateid >= ADD_MONTHS(TRUNC(SYSDATE,'MM'),1))
group by extract(year from dateid), extract(month from dateid)
order by 1, 2