我在AWS Redshift中有一个mytable
和user_id
的{{1}}。我需要计算每个用户的记录数,但前提是该用户的所有记录都大于阈值。
mytable:
records
阈值= 400,因此结果应为:
user_id | records
------------------
0 | 678
0 | 567
1 | 845
1 | 123
1 | 420
2 | 789
感谢您的帮助!
答案 0 :(得分:3)
您可以将group by
与having
一起使用:
select user_id, sum(case when records > 400 then 1 else 0 end) as cnt
from t
group by user_id
having min(records) > 400;
或使用::
:
select user_id, sum( (records > 400)::int ) as cnt
from t
group by user_id
having min(records) > 400;