gpt4 book ai didi

MySQL显示多列的排名

转载 作者:可可西里 更新时间:2023-11-01 08:47:00 26 4
gpt4 key购买 nike

我的表格看起来像这样:

Name Height Weight
Jim 60 150
Tom 62 170
Mac 64 160

我想找到一个返回如下内容的查询:

Name Height Weight Height_Rank Weight_Rank
Jim 60 150 3 3
Tom 62 170 2 1
Mac 64 160 1 2

如上所述,显示多列排名的最佳方式是什么?我可以使用 order by 来查找单个列的排名,但我希望在单个表中拥有多个列的排名。谢谢!

编辑:下面的答案是一个很好的解决方案。但是,如果您对数千行进行排名,您可能会遇到另一个问题。 “group_concat”的最大长度为 1024 字节。您可以通过运行“SET SESSION group_concat_max_len = 1000000;”来增加此限制。这将允许您一次对更多行进行排名。

最佳答案

使用像这样的东西..

SELECT Name,Height,Weight,FIND_IN_SET( Height,( SELECT GROUP_CONCAT( Height ORDER BY Height DESC ) FROM scores )) AS Height_Rank,FIND_IN_SET( Weight,( SELECT GROUP_CONCAT( Weight ORDER BY Weight DESC ) FROM scores ) ) AS Weight_Rank FROM scores

关于MySQL显示多列的排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26478218/

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