gpt4 book ai didi

sql - 在一步中选择具有最大变量的行

转载 作者:行者123 更新时间:2023-12-02 22:15:59 24 4
gpt4 key购买 nike

我有一张看起来像这样的表:

--------EXAMPLE---------------------------------------------------------
Cat1 Cat2 Value
a NULL 131
b e1 143
a e2 135
c NULL 136
a e1 132
a NULL 13
c e4 1

我想从上面的 Cat1 中的各种类型中选择具有最高值的行。所以,我的答案如下所示:

--------EXAMPLE---------------------------------------------------------
Cat1 Cat2 Value
b e1 143
a e2 135
c NULL 136

我正在使用 Microsoft SQL,我正在寻找高效的方法,因为我的表中有大约 4000 万行需要操作。

谢谢!!

最佳答案

您可以将 CTEDENSE_RANK 一起使用:

WITH cte 
AS (SELECT cat1,
cat2,
Value,
Rank = Dense_rank()
OVER (
partition BY cat1
ORDER BY Value DESC)
FROM dbo.tablename)
SELECT cat1,
cat2,
value
FROM cte
WHERE rank = 1

如果您只想要一条(任意)记录且有多个具有相同最高值的记录,请使用 Row_Number 而不是 Dense_Rank

关于sql - 在一步中选择具有最大变量的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14448028/

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