gpt4 book ai didi

mysql - Mysql 中的排名值

转载 作者:行者123 更新时间:2023-11-29 09:53:07 26 4
gpt4 key购买 nike

我无法找到解决方案。我需要创建一个从最高值到最低值排名的列(列床渣)。如果值相同,则数字最大的值(spelersnr 列)“获胜”。我希望你能帮助我。

这就是我到目前为止所得到的。

SELECT    s.spelersnr, 
naam ,
(select max(bedrag) from boetes b where b.spelersnr = s.spelersnr) as mbedrag,
@curRank := @curRank + 1 AS POSITIE
FROM spelers s, (SELECT @curRank := 0) r
ORDER BY mbedrag ;

最佳答案

鉴于您使用的是 MySQL 8+,您可以尝试在此处使用 ROW_NUMBER 函数。此外,我们可以使用联接重写您的查询,以消除 select 子句中的相关子查询:

SELECT s.spelersnr, s.naam,
ROW_NUMBER() OVER (ORDER BY b.mbedrag DESC, s.spelersnr DESC) rn
FROM spelers s
INNER JOIN
(
SELECT spelersnr, MAX(bedrag) AS mbedrag
FROM boetes
GROUP BY spelersnr
) b
ON s.spelersnr = b.spelersnr
ORDER BY
b.mbedrag;

关于mysql - Mysql 中的排名值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54443820/

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