SQL Query显示当前月份之前的所有结果

时间:2012-07-18 20:29:21

标签: sql oracle

我在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子句,忽略日期等于当前年份+月份的所有条目?

2 个答案:

答案 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