繁体   English   中英

SQL Distinct计数累积

[英]SQL Distinct count cumulative

我想做一个查询,将以下输入映射到以下输出:

输入:

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中的每个不同组,计算有多少不同的b元素用于id低于或等于当前id。


我努力了:

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)上的索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM