可以使用窗口功能进行过滤吗?
我有下表
ID AssignedDate StartDate EndDate userid Role
1 1/1/17 1/1/18 2/1/18 rdsd Red
1 1/15/17 1/1/18 2/1/18 adfd Red
* 1 12/15/17 1/1/18 2/1/18 dfge Red
我想看到每个ID一行和一个名为FirstAssgnDate的新列
首先 - 获取在startDate之前发生的所有指定日期,然后在role = REd时获取MAX assignedDate
输出应为:
表
ID FirstAssgnDate StartDate EndDate userid Role
1 12/15/17 1/1/18 2/1/18 dfge Red
*此行应该返回。
我在想下面的东西?
Select *
max(assignedDate) Keep(when AssignedDate < StartDate) As FirstAssgnDate
from tablea
答案 0 :(得分:1)
我不这么认为我们需要使用窗口函数简单的聚合函数才能工作,如果你只需要检查那些角色为Red和assigneddate&lt; startdate(至少这是我从你的问题中理解的)我们可以在where子句过滤器中使用以下内容:
const libB = require('libB')