【发布时间】:2014-12-16 04:15:20
【问题描述】:
我的表格如下所示:
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;”来增加此限制。这将允许您一次对更多行进行排名。
【问题讨论】:
-
您似乎需要对每个附加列进行嵌套查询,如here 所示。
-
谢谢!这就是我正在寻找的,但我希望有更好的方法。
-
几分钟后我会告诉你怎么做