SQL唯一计数累计

戴维·马西普

我想查询将以下输入映射到以下输出的查询:

输入:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章