Oracle-从过去一年获取数据(动态)



我有一些关于从数据库中获取数据的问题,这些数据需要从过去一年中获取(动态,而不是硬编码(

表:预订

bookingID   userID     Timebooked 
1             0003    10-May-2016
2             0001    10-May-2018
3             0001    10-Apr-2017
4             0001    10-Apr-2017
5             0003    10-Jan-2011
6             0006    10-Apr-2018
7             0003    10-Apr-2016
8             0006    10-Apr-2015
9             0001    10-Apr-2017

这是我下面的代码

SELECT userID, COUNT(userID) AS count
FROM BookingTable 
GROUP BY userID
HAVING COUNT(userID) >2

这是我上面查询的结果

userID  count
0001      4
0003      3

在桌子上,我想添加时间预定的时间从过去一年到当前日期。

您可以使用sysdate - interval '1' year代表今天的日期:

SELECT userID, COUNT(userID) AS count
FROM BookingTable 
WHERE Timebooked BETWEEN SYSDATE - INTERVAL '1' year AND SYSDATE
GROUP BY userID
HAVING COUNT(userID) > 2

正如@Wernfried正确指出的那样,上述将在2月29日的leap年中失败。而是使用此解决方法:

WHERE Timebooked BETWEEN ADD_MONTHS(SYSDATE, -12) AND SYSDATE

相关内容

  • 没有找到相关文章

最新更新