Oracle SQL排序组

时间:2015-08-06 20:11:48

标签: sql oracle sorting grouping

我有一个返回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

基本上我需要按部件#分组,并按每个部件的最小日期排序。是否可以使用一个查询执行此操作?

1 个答案:

答案 0 :(得分:2)

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

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

Sql Fiddle

编辑:感谢Bulat提供SQLFiddle链接。 :)