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

Ela*_*Van 0 sql t-sql sql-server 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
Run Code Online (Sandbox Code Playgroud)

所需的输出,

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
Run Code Online (Sandbox Code Playgroud)

我想通过 SQL 查询来实现这一点。是否可以?

GMB*_*GMB 5

您可以使用窗口函数:

order by
    min(date) over(partition by name),
    date
Run Code Online (Sandbox Code Playgroud)

如果存在绑定组的可能性,那么您可以添加name作为第二个排序标准以避免混合组:

order by
    min(date) over(partition by name),
    name,
    date
Run Code Online (Sandbox Code Playgroud)