对行进行排序,并以相同的排序顺序对其进行分组

时间:2020-03-29 18:11:20

标签: sql sql-server tsql date sql-order-by

首先,我想按日期列asc排序。然后按名称列分组。 例如,

Name     date(mmddyyyy)
 A.      03/10/2020
 B.      03/09/2020
 C.      03/13/2020
 B.      03/11/2020
 A.      03/12/2020
 C.      03/12/2020

必需的输出

Name     Date
 B.      03/09/2020
 B.      03/11/2020
 A.      03/10/2020
 A.      03/12/2020
 C.      03/12/2020
 C.      03/13/2020

我想通过SQL查询来实现这一点。有可能吗?

1 个答案:

答案 0 :(得分:5)

您可以使用窗口功能:

order by
    min(date) over(partition by name),
    date

如果有可能存在捆绑的组,则可以添加name作为第二排序标准,以避免混合组:

order by
    min(date) over(partition by name),
    name,
    date