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

MySQL:统计用户名下仅含一次活动的任务数量

解决用户单次活动任务统计问题

嘿,针对你这个需求,我来一步步拆解并给出具体的实现方案:

核心思路

我们要统计的是每个用户仅操作过一次的任务数量,得先定位到每个用户对每个任务的操作次数,再筛选出次数为1的任务,最后按用户维度统计这类任务的总数。

具体SQL实现

假设你的activities表中,任务唯一编码字段为task_code,用户ID字段为user_id,可以用以下SQL语句实现:

SELECT 
    user_id,
    COUNT(*) AS `Count Jobs with one activity`
FROM (
    -- 第一步:筛选出用户仅操作过一次的任务
    SELECT 
        user_id,
        task_code
    FROM activities
    GROUP BY user_id, task_code
    HAVING COUNT(*) = 1
) AS user_single_task_list
GROUP BY user_id;

代码逻辑解释

  • 内层子查询:先按user_id和task_code分组,计算每个用户对每个任务的操作次数,再通过HAVING COUNT(*) = 1筛选出那些用户只操作过一次的任务记录。
  • 外层查询:将内层筛选出的结果按user_id再次分组,用COUNT(*)统计每个用户拥有的这类任务数量,最终输出你需要的格式。

示例效果展示

如果activities表有如下测试数据:

user_idtask_code
1T001
1T001
1T002
1T003
2T004
2T005
2T005
2T006
2T007

执行SQL后会得到如下结果:

user_idCount Jobs with one activity
12
23

完全符合你要求的输出格式~

内容的提问来源于stack exchange,提问作者تیم کبیروید

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:36:44