gpt4 book ai didi

SQL Server - 如何从从上到下的数字列表中查询最大数字集

转载 作者:行者123 更新时间:2023-12-02 08:13:07 24 4
gpt4 key购买 nike

最好的解释方法是通过示例。假设我有这个简单的 2 列表:

Id | Score
1 | 10
2 | 5
3 | 20
4 | 15
5 | 20
6 | 25
7 | 30
8 | 30
9 | 10
10 | 40

查询应返回最高分发生变化的每个项目的 ID。因此,从顶部开始,10 将是最高分,因为第 1 项第一次有 10 分,但随后在第 3 项上它有 20 分,所以它只有一个新的最高分,并且一直持续到表格底部。所以最终,查询将导致:

1, 3, 6, 7, 10

我尝试做 Cursor并循环遍历表格,但我想知道是否有一种更简单的方法可以做到这一点。

谢谢

最佳答案

解决方案(SQL2012+):

SELECT v.MaxScore, MIN(v.Id) AS FirstId
FROM (
SELECT *, MAX(t.Score) OVER(ORDER BY t.Id ASC) AS MaxScore
FROM @Table AS t
) v
GROUP BY v.MaxScore

Demo

关于SQL Server - 如何从从上到下的数字列表中查询最大数字集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44323131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com