在oracle sql中逐日获取上月数据



我想每天从上个月获得数据,我可以获得最后30天,但我只想要这个月,因为它可能少于或多于30天,

这是获取最后30天的查询

SELECT Trunc(timestamp),
Count(*)
FROM   table1
WHERE  Trunc(timestamp) > Trunc(sysdate - 30)
GROUP  BY Trunc(timestamp)
ORDER  BY 1;  

此外,如果我能在脚本中创建一个变量并将其放入查询,我将在shell脚本中使用它

从本月初到今天获取数据:

SELECT TRUNC(timestamp) AS day,
COUNT(*)
FROM   table1
WHERE  timestamp >= TRUNC(SYSDATE, 'MM')
AND    timestamp <  TRUNC(SYSDATE) + INTERVAL '1' DAY
GROUP BY TRUNC(timestamp)
ORDER BY day

从上个月的同一天到今天获取数据:

SELECT TRUNC(timestamp) AS day,
COUNT(*)
FROM   table1
WHERE  timestamp >= ADD_MONTHS(TRUNC(SYSDATE), -1)
AND    timestamp <  TRUNC(SYSDATE) + INTERVAL '1' DAY
GROUP BY TRUNC(timestamp)
ORDER BY day

db<gt;小提琴这里

相关内容

  • 没有找到相关文章

最新更新