繁体   English   中英

oracle sql 逐日获取上月数据

[英]Get data of last Month day by day in 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<> 在这里摆弄

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM