我想查询将以下输入映射到以下输出的查询:
输入:
a,b,id
x,y,1
x,y,2
x,z,3
t,z,4
t,y,5
t,y,6
输出:
count,id
1,1
1,2
2,3
1,4
2,5
2,6
使用以下逻辑:
对于a中的每个不同组,请计算小于或等于当前id的id有多少个不同的b元素。
我努力了:
SELECT COUNT(a), b, id FROM table GROUP BY b
但这不会产生任何累积结果。
一种方法是相关子查询:
select t.*,
(select count(distinct t2.b) from t t2 where t2.a = t.a and t2.id <= t.id)
from t;
为了提高性能,您希望在上建立索引t(a, b)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句