【问题标题】:Sort the rows and group it with same sorted order对行进行排序并以相同的排序顺序对其进行分组
【发布时间】:2020-03-29 18:11:20
【问题描述】:

首先我想按日期列 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 查询来实现这一点。有可能吗?

【问题讨论】:

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


    【解决方案1】:

    你可以使用窗口函数:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      相关资源
      最近更新 更多