在一个非常古老(13年左右)的SQL数据库程序中,我面临着对数据组排序的问题。数据如下:
Entry Batch Time
1 1 7-1-2013 13:35
2 1 3-3-2014 7:48
3 1 1-2-2014 18:49
4 2 3-1-2011 13:23
5 2 5-3-2014 20:48
6 2 7-2-2014 3:11
7 3 2-3-2012 15:09
8 3 5-3-2014 10:37
9 3 6-2-2014 7:16我希望通过将来自同一批的条目分组起来来对条目进行排序,然后根据这些组中的最低时间条目对它们进行排序。在本例中,组顺序为2-3-1,输入顺序为4-6-5-9-7-8-1-3-2。
有什么简单的方法吗?我试着按顺序工作,但到目前为止没有成功。如能提供任何帮助,将不胜感激:)
发布于 2014-03-06 15:00:32
如果我正确阅读,您希望先按组中最老的日期对组进行排序,然后按时间排序。
如果这是oracle或sql server,则可以使用分析方法:
select Entry,
Batch,
Time
from ( select Entry,
Batch,
Time,
MIN(Time) OVER (PARTITION BY Batch) AS MinTime
from MyTable ) MyTable2
order by MinTime, Time如果您没有支持此功能的数据库,则可以尝试以下操作:
select MyTable.Entry,
MyTable.Batch,
MyTable.Time
from MyTable
join ( select Batch, MIN(Time) AS MinTime
from MyTable ) MyTable2 on MyTable.Batch = MyTable2.Batch
order by MyTable2.MinTime, MyTable.Timehttps://stackoverflow.com/questions/22227858
复制相似问题