是否可以使用窗口函数进行过滤?
我有下一张桌子
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之前发生的所有分配日期,然后取最大assignedDate (当角色= REd )
产出应是:
表格
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发布于 2018-02-08 14:45:33
我不认为我们需要使用window函数--简单的聚合函数就能工作,如果您只需要检查这些记录,角色为Red和assigneddate < startdate (至少我从您的问题中了解到这一点),我们可以在where子句筛选器中使用以下内容:
select id,max(assigneddate),startdate,enddate,userid,role
from tablea
where asssigneddate < startdate and
role = 'Red'
group by id,startdate,enddate,userid,role;https://stackoverflow.com/questions/48687627
复制相似问题