gpt4 book ai didi

多列上的Sql Order by

转载 作者:行者123 更新时间:2023-12-03 23:17:37 25 4
gpt4 key购买 nike

我有以下结果

VendorName | IncidentID | IncidentStatus | IncidentDate
-------------------------------------------------------
XYZ | 100 | Open | 02-JUN-2011
XYZ | 101 | Open | 03-JUN-2011
ABC | 102 | Open | 01-JUN-2011
XYZ | 103 | Open | 01-APR-2011
ABC | 105 | Open | 05-JUN-2011

我要订购 VendorName其中有最新的事件。供应商 ABC有最新的事件,因此它应该首先与同一供应商的所有其他事件一起出现,然后是下一个供应商以降序排列所有各自的事件。所需的结果是这样的 -
VendorName | IncidentID | IncidentStatus | IncidentDate  
-------------------------------------------------------
ABC | 105 | Open | 05-JUN-2011
ABC | 102 | Open | 01-JUN-2011
XYZ | 101 | Open | 03-JUN-2011
XYZ | 100 | Open | 02-JUN-2011
XYZ | 103 | Open | 01-APR-2011
ORDER BY IncidentDate desc, VendorName没有给出所需的输出。有什么帮助吗?

最佳答案

使用解析函数:

SELECT *
FROM(
SELECT
VendorName,
IncidentID,
IncidentStatus,
IncidentDate,
MAX(IncidentDate) OVER (PARTITION BY VendorName) maxDate
FROM yourTable
) t
ORDER BY t.maxDate DESC, t.VendorName ASC, t.IncidentDate DESC

引用:
http://docs.oracle.com/javadb/10.8.2.2/ref/rrefsqlj13658.html
http://docs.oracle.com/cd/E11882_01/server.112/e10592/functions003.htm
http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions004.htm

关于多列上的Sql Order by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13897024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com