Val*_*lga 6 sql sql-server group-by sql-order-by sql-server-2008
我想将结果分组为一列(NAME),然后按第二列(注释)为每个组排序,最后按照最高的顺序对组进行排序.
所以,如果我的实体像这样扰乱:
NAME NOTE
Andrew 19
Thomas 18
Andrew 18
Andrew 17
Frank 16
Frank 15
Thomas 14
Thomas 12
Frank 5
Run Code Online (Sandbox Code Playgroud)
我希望他们这样订购:
NAME NOTE
Andrew 19
Andrew 18
Andrew 17
Thomas 18
Thomas 14
Thomas 12
Frank 16
Frank 15
Frank 5
Run Code Online (Sandbox Code Playgroud)
按姓名分组,安德鲁首先出现因为他的最高音符是19,然后是托马斯(18)和弗兰克(16).
问候,
瓦尔
这是使用窗口函数来完成此操作的一种方法:
select name, note
from (select t.*, max(note) over (partition by name) as maxnote
from t
) t
order by maxnote desc, name
Run Code Online (Sandbox Code Playgroud)
除了按maxnote排序外,还按名称排序。如果存在联系,那么它将把给定名称的所有记录保存在一起。
| 归档时间: |
|
| 查看次数: |
7903 次 |
| 最近记录: |