最高数量的"杀戮除以死亡"的SQL顺序

Vla*_*lad 0 mysql sql sql-order-by

我有一张桌子:
ID | KILLS | DEATHS
$ratio = $kills / $deaths;

如何订购字段,以便以最高比率回显ID?

Tim*_*ter 6

WITH CTE AS
(
   SELECT T.*,
       Ratio = kills / deaths, 
       Rank = DENSE_RANK()OVER(PARTITION BY Id ORDER BY kills / deaths DESC) 
   FROM dbo.TableName T
)
SELECT * FROM CTE WHERE Rank = 1
Run Code Online (Sandbox Code Playgroud)

  • @Bohemian:这个代码高尔夫还是一个严肃答案的网站?我不能带一个认真测量代码长度的人.我已经省略了一个解释,因为OP说他正在使用MySql.但是,这个答案可能对寻找t-sql方法的人有用,并且他们想要所有列的最高比率行.Imho它非常易读且高效. (6认同)
  • @Bohemian这个答案是不同的,它为每个玩家提供了最高的"杀戮/死亡"比率.蒂姆在添加mysql标签之前已经回答了. (3认同)
  • 我应该指定我使用的是MySQL. (2认同)
  • @pilcrow:我已经说过ID是一个外键列.杀戮/死亡的比例听起来好像OP想要一个高分函数,然后`DENSE_RANK`比'ROW_NUMBER`更合适,它只返回一个. (2认同)