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

如何用单SELECT语句统计交易次数超1次的用户数量?

单条SELECT实现交易次数超1次的用户统计

当然可以用单条SELECT语句完成需求,下面是两种简洁的实现方式:

方式一:嵌套子查询(最直观)

直接将原CTE中的分组筛选逻辑作为内联子查询,外层统计符合条件的用户数:

SELECT COUNT(user_id) AS multi_trans_user_count
FROM (
    SELECT user_id
    FROM table
    GROUP BY user_id
    HAVING COUNT(transaction_id) > 1
) AS filtered_users

这种写法和你原来的CTE逻辑完全等价,只是把CTE换成了子查询,大部分数据库会生成相同的执行计划,可读性和性能都表现不错。

方式二:聚合筛选直接统计

通过GROUP BY结合HAVING筛选后,直接统计符合条件的用户分组数:

SELECT COUNT(*) AS multi_trans_user_count
FROM table
GROUP BY user_id
HAVING COUNT(transaction_id) > 1

这里GROUP BY先按用户ID分组,HAVING筛选出交易次数超过1的用户分组,最后COUNT(*)直接统计这些分组的数量(每个分组对应唯一用户)。

注意:记得把语句中的table替换成你的实际数据表名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:32:33