有如下表,同一种key,可能对应不同的level。
需求是:传入一个id list,要求返回的数据为:
按照key分组,只统计id里对应的最高的那个level的数量,例如,传入的idlist是[2,3],那么返回的数据应该为a,3,1(3代表最高level,1代表数量),传入的idlist是[2,3,8,9],返回的数据是a,3,1;c,2,2。
有没有一条sql能够解决的方案呢!(sql支持find in操作,例如find in (id1,id2...))
有如下表,同一种key,可能对应不同的level。
需求是:传入一个id list,要求返回的数据为:
按照key分组,只统计id里对应的最高的那个level的数量,例如,传入的idlist是[2,3],那么返回的数据应该为a,3,1(3代表最高level,1代表数量),传入的idlist是[2,3,8,9],返回的数据是a,3,1;c,2,2。
有没有一条sql能够解决的方案呢!(sql支持find in操作,例如find in (id1,id2...))
先写个复杂点的
select t1.`key`,t1.max_lev,count(1)
from (
select `key`,max(`level`) max_lev
from seg_key_level
where id in (2,3,8,9)
group by `key`
)t1 inner join seg_key_level t2 on t1.`key`=t2.`key` and t1.max_lev=t2.`level`
where t2.id in (2,3,8,9)
group by t1.`key`,t1.max_lev;
3 回答1.7k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
表:
sql:下面两种都可以