Sqlite
sqlite有序表中條目的位置
我正在嘗試訂購一個表格並返回該有序表格中一行的位置。就上下文而言,我正在為一個不和諧的機器人開發一個調平系統並嘗試實施一個等級命令。該命令將顯示使用者相對於伺服器其餘部分的 xp。例如。“您在此伺服器中的 XP 排名第 25 位”。我可以訂購桌子,
SELECT * FROM users ORDER by xp DESC
但很難獲得條目的位置。如果您能提供任何建議,我將不勝感激我的表結構如下:
CREATE TABLE "users" ( "guild_id" INTEGER NOT NULL, "user_id" INTEGER NOT NULL, "xp" INTEGER DEFAULT 0, PRIMARY KEY("guild_id","user_id")
你可以用
ROW_NUMBER
這個。SELECT YourRank FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY xp DESC) AS YourRank FROM users ) u WHERE u.user_id = @someId;
如果你想要並列排名,你也可以使用
RANK
或DENSE_RANK