You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Redshift按用户统计全量记录均超阈值的记录数

解决方案:筛选所有记录均大于阈值的用户并统计条数

嘿,这个需求在AWS Redshift里很容易实现,我给你两种实用的方案,你可以根据场景选择:

方法一:使用GROUP BY + HAVING(简洁高效)

这种方法利用了如果一个用户的最小records值都大于阈值,那他所有的records肯定都满足条件的逻辑,代码非常简洁:

SELECT user_id, COUNT(*) AS count
FROM mytable
GROUP BY user_id
HAVING MIN(records) > 400;

逻辑说明:

  1. 按user_id分组,把每个用户的所有记录归到一组
  2. 用HAVING MIN(records) > 400过滤掉那些存在records≤400的用户(因为只要有一条不满足,MIN值就会≤400)
  3. 最后对符合条件的用户统计记录条数,正好匹配你的预期结果

方法二:使用窗口函数(灵活拓展)

如果之后你需要更复杂的条件判断,窗口函数的方式会更灵活,先标记用户是否存在不符合条件的记录,再筛选统计:

WITH user_records AS (
    SELECT 
        user_id,
        records,
        -- 标记当前用户是否有records≤400的记录:有则为1,无则为0
        MAX(CASE WHEN records <= 400 THEN 1 ELSE 0 END) OVER (PARTITION BY user_id) AS has_invalid
    FROM mytable
)
SELECT user_id, COUNT(*) AS count
FROM user_records
WHERE has_invalid = 0 -- 只保留没有无效记录的用户
GROUP BY user_id;

逻辑说明:

  1. 先用CTE给每条记录加上一个has_invalid标记,通过窗口函数PARTITION BY user_id判断该用户是否存在不符合条件的记录
  2. 筛选出has_invalid=0的记录(也就是用户所有记录都满足>400)
  3. 最后按用户分组统计条数

两种方法都能得到你想要的结果:

user_idcount
02
21

内容的提问来源于stack exchange,提问作者aviss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:14:09