0

我在 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 子句?

4

2 回答 2

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
于 2012-07-18T21:08:36.007 回答
1

这是一种方法:

where to_char(dateid, 'YYYY-MM') <> to_char(sysdate, 'YYYY-MM')
于 2012-07-18T20:33:29.347 回答