sql排序两列求和

62lalag4  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(229)

我需要按两列的和或除对行进行排序,如下所示:

SELECT `lastnick`, `Kills`, `Deaths`, `steamid` 
FROM `players` 
WHERE `lastlog` >= UNIX_TIMESTAMP() - '1209600' 
ORDER BY `players`.`Kills` / `players`.`Deaths` DESC 
LIMIT 8

但此sql调用无效。有没有可能?
下面是一个例子,我想排序的球员,他们的k/d统计,他们发挥了至少一次,在过去14天。

gcxthw6b

gcxthw6b1#

你的问题应该没问题。我建议:
限定所有列引用
使用表别名
考虑到被零除
所以:

SELECT p.lastnick, p.Kills`, p.Deaths, p.steamid p
FROM pplayers p
WHERE p.lastlog >= UNIX_TIMESTAMP() - 1209600
ORDER BY p.kills / nullif(p.deaths, 0) desc
LIMIT 8

相关问题