Pan*_*kaj 13 sql oracle sql-order-by
我有以下结果
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
Run Code Online (Sandbox Code Playgroud)
我想订购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
Run Code Online (Sandbox Code Playgroud)
ORDER BY IncidentDate desc, VendorName没有给出所需的输出.有帮助吗?
Rog*_*ger 26
使用分析函数:
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
Run Code Online (Sandbox Code Playgroud)
请参阅: 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