我有一些关于从数据库中获取数据的问题,这些数据需要从过去一年中获取(动态,而不是硬编码(
表:预订
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