MYSQL怎么实现oracle的RANK功能

sxq129601 2019-09-04 10:39:41
oracle语句为:
select t.*,row_number()over(partition by id,id2 order by id,id2) rn from t

网上的案例都只有一个列作为分组,如果需要2个列分组的怎么写?
例如:
SELECT
IF(@dept = e.deptNo,@rank := @rank +1,@rank := 1) AS rank,
@dept := e.deptNo,
e.*
FROM
(SELECT
@deptno := NULL,@rank := 0) r,
employee e

主要我想取得rank的值



...全文
115 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
stelf 2019-09-05
  • 打赏
  • 举报
回复
升级数据库到mysql8.0吧,哈哈哈。 select if(@uid = t.user_id and @cid = t.city_id, @rank := @rank + 1, @rank := 1) as rank, t.*, @uid := t.user_id, @cid := t.city_id from (select @uid := null, @cid := null, @rank := 0) r, (select user_id, city_id, city_name, id from t_user_city order by user_id, city_id, id) t;

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧