首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL高级排序

SQL高级排序
EN

Stack Overflow用户
提问于 2014-03-06 14:47:41
回答 1查看 64关注 0票数 0

在一个非常古老(13年左右)的SQL数据库程序中,我面临着对数据组排序的问题。数据如下:

代码语言:javascript
复制
    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

有什么简单的方法吗?我试着按顺序工作,但到目前为止没有成功。如能提供任何帮助,将不胜感激:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-06 15:00:32

如果我正确阅读,您希望先按组中最老的日期对组进行排序,然后按时间排序。

如果这是oracle或sql server,则可以使用分析方法:

代码语言:javascript
复制
select Entry, 
       Batch, 
       Time
from ( select Entry, 
              Batch, 
              Time, 
              MIN(Time) OVER (PARTITION BY Batch) AS MinTime
       from MyTable ) MyTable2
order by MinTime, Time

如果您没有支持此功能的数据库,则可以尝试以下操作:

代码语言:javascript
复制
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.Time
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22227858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档