我在 表 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 ... 等...
有人可以帮助我如何编写 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/