Oracle SQL 排序组

Oracle SQL Sort Groups

我有一个查询 returns PartNumOrderNumNeedDate:

Part    Order    Date 
1       A        8/1 
2       B        6/3
2       C        1/1
3       D        7/1
3       E        6/1

我需要将其排序为:

Part    Order    Date
2       C        1/1
2       B        6/3

3       E        6/1
3       D        7/1

1       A        8/1

基本上,我需要将它们按部分# 分组,并按每个部分的最短日期排序。是否可以通过一个查询来完成此操作?

您可以使用解析函数将最小值 NeedDate 关联到每个 PartNum 组,然后对其进行排序:

SELECT PartNum, OrderNum, NeedDate
  FROM SomeTable
 ORDER BY MIN(NeedDate) OVER (PARTITION BY PartNum), PartNum

Sql Fiddle

编辑: 谢谢 Bulat SQLFiddle link。 :)