【发布时间】:2018-06-12 11:28:56
【问题描述】:
我有表 A。它有一个按日期列出的 ID 数据列表。
ID 可以有多个记录。
ID STARTDATE
-- ------------
1 APR-1-2017
2 JAN-1-2017
3 JULY-5-2016
4 DEC-6-2015
5 FEB-3-2017
5 JAN-1-2018
1 JAN-1-2018
我希望能够选择任何特定的日期或日期范围,这将为我提供该日期的 ID。然后我想选择这些 ID 过去 365 天的计数。
我能够让查询正常工作。但唯一的问题是我使用的应用程序不理解WITH Temp Table。
是否有替代方法来编写此查询?
WITH list_to_compare as (select distinct(ID) AS LASTWEEKOUT
from TABLEA
WHERE TIMESTAMP >= SYSDATE -1)
SELECT TABLEA.ID,count(*)
from list_to_compare LTC
LEFT OUTER join TABLEA
on LTC.lastweekout = TABLEA.ID
WHERE TABLEA.TIMESTAMP >= SYSDATE - 365
group by TABLEA.ID
having COUNT(*) > 12;
【问题讨论】:
-
附注:当它不是表的 ID 时,您不应该调用列
ID。从名为ID的列中,我们希望它能够唯一标识表中的一条记录。