SELECT deposit.numberSuccessfulDeposits, count(distinct userid)
FROM deposit WHERE deposit.asOfDate between '2016-04-01 00:00:00' and '2016-04-03 23:59:59'
AND deposit.licenseeId = 1306
GROUP BY deposit.numberSuccessfulDeposits
样本输出
numberSuccessfulDeposits count(distinct userid)
0 228
1 878
2 90
3 37
4 17
但是,如果bob在周一存款1笔,周二存款3笔,那么成功存款的数量将同时计入“1”和“3”。
numberSuccessfulDeposits count(distinct userid)
0 ##
1 1
2 ##
3 1
4 ##
理想情况下,应该只算“4”
numberSuccessfulDeposits count(distinct userid)
0 ##
1 ##
2 ##
3 ##
4 1
思想?
2条答案
按热度按时间syqv5f0l1#
在子查询中计算每个用户的总和,然后在主查询中计算每个总计数。
zz2j4svz2#
将分组更改为“基于用户”,并对所有发生的存款进行合计。然后计算每一笔存款的用户数:
编辑:将仓库分组为0、1、2、3+类别如下所示: