为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:
这种sql有什么适配方案吗
select hsh.effective_date, hsh.holiday_balance_value,
if(@accountId = hsh.account_id, @rank := @rank + 1,
@rank := 1) as rank ,
(@accountId := hsh.account_id) account_id
from hs_holiday_annualleave hsh
可以尝试一下直接通过分组函数来构建RANK看是否满足需求
select
hsh.effective_date,
hsh.holiday_balance_value,
rank() over (partition by hsh.account_id order by hsh.account_id) as “RANK”,
hsh.account_id account_id
from
hs_holiday_annualleave hsh
应该属于查询排名