Sam*_*ett 0 mysql rank partition-by
我完全为在mysql中从rank()over(按x分区,按y desc排序)创建新列“ LoginRank”而感到困惑。
From sql server i would write the following query, to create a column "Loginrank" that is grouped by "login" and ordered by "id".
select ds.id,
ds.login,
rank() over(partition by ds.login order by ds.id asc) as LoginRank
from tablename.ds
Run Code Online (Sandbox Code Playgroud)
I have the following table.
create table ds (id int(11), login int(11))
insert into ds (id, login)
values (1,1),
(2,1),
(3,1),
(4,2),
(5,2),
(6,6),
(7,6),
(8,1)
Run Code Online (Sandbox Code Playgroud)
I tried applying many existing mysql fixes to my dataset but continue to have issues.
Any help is greatly appreciated. Thanks!
请尝试以下查询:-MySql不支持Rank()函数。
select result.id,result.login,result.rank from (
SELECT id,
login,
IF(login=@last,@curRank:=@curRank,@curRank:=@_sequence) AS rank,
@_sequence:=@_sequence+1,
@last:=login
FROM ds , (SELECT @curRank := 1, @_sequence:=1, @last:=0) r
ORDER BY id asc) as result;
Run Code Online (Sandbox Code Playgroud)
希望对您有帮助!
| 归档时间: |
|
| 查看次数: |
15780 次 |
| 最近记录: |