sql - 如何编写 sql 查询来对数据集进行排序或分组

标签 sql sql-server sql-server-2008 sql-server-2005 sql-server-2012

我在 表 A 中有数据,如下所示。我想将 memberID 分组为一组,并对每组中的 Date_Time 进行排序,如下面的快照所示

Date_Time        PersonID     Status
4/2/14 10:15 AM    ghi        Closed
4/1/14 9:15 AM     ghi        Cancelled
4/1/14 11:00 AM    abc        Cancelled
4/2/14 8:12 AM     def        Closed
4/1/14 9:17 AM     def        Hold
4/3/14 2:17 PM     abc        Hold
4/2/14 8:30 AM     abc        Open
4/3/14 8:16 AM     jkl        Closed
4/1/14 12:10 PM    jkl        Open
4/1/14 11:30 AM    abc        Hold

在下面附加的最终示例快照中,您将看到 memberID:ghi 第一行 date time '4/1/2014 9:15: 00 AM' 大于 memberID:def 第一行 date_Time '4/1/2014 9:17: 00 AM' 以黄色突出显示。这就是 memberID ghi 将 tweaks 设置为第一个设置,然后是 memberID def 设置然后再设置的主要原因meberID abc, jkl ... 等...

enter image description here

有人可以帮助我如何编写 MS-SQL 查询来实现最终结果吗?

非常感谢您的帮助。

最佳答案

如果我没有正确理解你的问题,你需要使用 min 聚合来join 表以建立排序顺序:

select t.*
from yourtable t
  join (
    select personid, 
      min(date_time) min_date_time
    from yourtable
    group by personid
    ) t2 on t.personid = t2.personid
order by t2.min_date_time, t.date_time

关于sql - 如何编写 sql 查询来对数据集进行排序或分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23925725/

相关文章:

mysql - MySQL 中的唯一值组合

php - PDO Insert Into On Duplicate Key 条件无效

sql - 从多个条件中选择

c# - Sql 查询帮助,接近 = 的语法错误

SQL Server 查询问题

SQL 来自联系人的最新照片(按联系人分组)

mysql - 如何在 SSIS 中使用 Dynamic AX 源组件编写联接

sql-server - 像 USE 这样的函数指向不同服务器上的 SQL 数据库?

sql - 参数化 SQL IN 子句

mysql - 如何在不使用distinct的情况下避免一对多关联中的重复记录?