gpt4 book ai didi

mysql - MySQL 列排名

转载 作者:行者123 更新时间:2023-11-29 12:17:17 25 4
gpt4 key购买 nike

我想对我的专栏进行排名。 (第 1 列,第 2 列)并添加总体排名。但我不知道该怎么做。我的示例请参见表 1 和表 2。表 1 是当前情况,我想查看表 2。因此我计算排名并将其存储在我的新表中。

我想将 Column1 排名为高 -> 低,Column2 排名为低 -> 高。对于总体排名,我想将不同权重的列排名结合起来。 1 * Colomn1RANK + 2 * Colomn1RANK 低 -> 高。

这可能吗?如果可能的话,如何实现?

enter image description here

最佳答案

您可以使用变量添加排名。在这种情况下,您需要执行两次:

select t.*,
(col1rank + 2 * col2rank) as overallrank
from (select t.*, (@rn2 := @rn2 + 1) as col2rank
from (select t.*, (@rn1 := @rn1 + 1) as col1rank
from table t cross join
(select @rn1 := 0) vars
order by col1 desc
) t cross join
(select @rn2 := 0) vars
order by col2 asc
) t;

目前尚不清楚 overallrank 是否只是两个排名的组合,或者您是否想要在其之上另一个排名。如果是后者,那么它只是外部查询中的另一个order by和排名变量。

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

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