Oracle,按日期计算不同的项目

时间:2018-02-14 14:19:10

标签: oracle date count

我需要按照上次更新时间分组的field1按日期计算项目数。我要找的是field1中的一个项目在过去30天的特定日期出现的次数,其中字段2 = 0.这将每天运行,因此日期将滚动。 Field1将是一个数字> 0,field2将是任意数字(负数和正数),last_upd_time将是上次更新发生时的系统时间。我不需要时间,只需要约会。我当前返回所有数据的查询是:

select field1, field2, trunc(last_upd_time)
from table 
where field2 = '0' and last_upd_time >= SYSDATE - 30

我试图使用count,group by和group by / having。不是说我正确使用它们,但我确实尝试过。

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT TO_CHAR(last_upd_time,'DD-MM-YYYY') last_upd_time, COUNT(DISTINCT field1)
FROM table WHERE field2='0' AND
last_upd_time>=SYSDATE - INTERVAL '30' DAY
GROUP BY TO_CHAR(last_upd_time,'DD-MM-YYYY');