gpt4 book ai didi

sql - SQLite-获取编号行

转载 作者:行者123 更新时间:2023-12-03 17:46:41 24 4
gpt4 key购买 nike

我正在从数据库中检索人员列表,每个人都有一些要点。我要实现的是获取所有人的信息以及其得分和排名。点是随时计算的,因为它们没有存储在实体中,并且查询看起来像这样:

SELECT p.<some person attributes>, s.points, [here I need rank] as rank
FROM Persons p LEFT JOIN <subquery calculating points> s
ON p.id = s.personId
ORDER BY s.points DESC


在我的选择部分中,我需要获得一个人的排名位置(返回的行的顺序基本上是什么,因为我按点排序,对吧?)

是否有任何sql / sqlite列或函数返回该值?

最佳答案

这正是窗口功能的用途。具体来说,dense_rank还将处理几个用户具有相同点数的讨厌的边缘情况:

SELECT    p.<some person attributes> s.points,
DENSE_RANK() OVER (ORDER BY points DESC) as "rank"
FROM Persons p
LEFT JOIN <subquery calculating points> s ON p.id = s.personId
ORDER BY s.points DESC

关于sql - SQLite-获取编号行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52503050/

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