查询选择sql "advanced level"



我有下表,我想写一个查询,以便它显示具有事件描述的门票"解决";并且还示出了票得到它的事件的最后描述,并且如果它没有事件的描述;"解决";它只向我展示了门票获得的事件的最后描述

Ticket Id   EventId     EventDate    EventDescription
1             1        2021-01-06        create
1             2        2021-01-07        resolve
2             3        2021-01-06        create
3             4        2021-01-15        create
1             5        2021-01-09        close
1             6        2021-01-12        Re-open
2             7        2021-01-10        Assign
2             8        2021-01-22        resolve

下表将帮助您找到我想要的结果

Ticket Id   EventId     EventDate    EventDescription
1             2        2021-01-07        resolve
3             4        2021-01-15        create
1             6        2021-01-12        Re-open
2             8        2021-01-22        resolve

如果我的问题不清楚,我很抱歉,因为我的英语很差

您可以使用row_number来识别每个TicketId 的行

with r as (
select * , Row_Number() over(partition by ticketid order by eventid desc) rn
from t
)
select TicketId, EventId, EventDescription
from r
where rn=1 or EventDescription='resolve' 
order by eventid

最新更新