我的数据库有问题。
我有一个如下结构的表:
name type data frequen
name1 type1 d1 10
name2 type1 d2 15
name2 type1 d3 25
name2 type2 d4 02
name3 type2 d5 05
name3 type3 d6 20
我需要通过按降序对频率进行排序来创建每个名称和每种类型的最常见特征的排名。
例子:
name type data frequen rank
name1 type1 d1 10 1
name2 type1 d2 15 2
name2 type1 d3 25 3
name2 type2 d4 02 1
name3 type2 d5 05 2
name3 type3 d6 20 1
有人知道怎么做吗?我将 mysql 与 phpmyadmin 一起使用。
最佳答案
在 MySQL 中执行此操作的最简单方法是使用变量:
select t.*,
(@rn := if(@t = type, @rn + 1,
if(@t := type, 1, 1)
)
) as rank
from t cross join
(select @t := '', @rn := 0) params
order by name, freq;
关于mysql - 如何在mysql中建立排名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40875228/