gpt4 book ai didi

mysql - 来自计算查询的行号

转载 作者:太空宇宙 更新时间:2023-11-03 10:52:29 28 4
gpt4 key购买 nike

<分区>

我有包含用户统计信息的表格。为了简单起见,它看起来像这样:

id  nick        kills   deaths1   Misiek      25      202   Astma       22      183   4i60r       20      324   Heatseeker  45      45

为了显示我需要查询的内容,我准备了可用的 SQL 查询:

SELECT COUNT(id)+1 as `rank` FROM (SELECT * FROM (SELECT *, (kills/deaths) as kdr FROM `killerzy`) as b WHERE kdr > (SELECT (kills/deaths) as kdr FROM `killerzy` WHERE nick="4i60r")) as test

这个查询的结果是:

rank4

为了展示我是如何计算 kdr 的:

SELECT *, (kills/deaths) as kdr FROM `killerzy` WHERE 1

它产生:

id nick        kills   deaths  kdr1   Misiek      25      20      1.25002   Astma       22      18      1.22223   4i60r       20      32      0.62504   Heatseeker  45      45      1.0000

问题

我的问题是: mysql 或 postgresql 数据库是否有现成的函数来获得玩家的“排名”而无需编写 3 个嵌套查询?我在想类似的事情:

SELECT ROW_NUMBER() FROM (SELECT (kills/deaths) as kdr FROM killerzy ORDER BY kdr DESC) WHERE nick = "4i60r"

它看起来比 3 个嵌套查询更合乎逻辑。

我发现很难理解这么简单的问题。这里有其他版本:Does MySQL or PostgreSQL have function that can return on which position in resultset is row,我需要。像“GET_POSITION WHERE”之类的东西。奇怪的是,当有人明白了要点并回答得很好时,我的问题被搁置了 - 简单的 JOIN 查询看起来不错并且执行速度很快。

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