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

如何统计各distinct UserID的loggedIn为Yes的次数(含0值记录)

统计各用户loggedIn为Yes的记录次数(含无符合记录用户)

需求说明

需要统计每个唯一Userid对应的loggedIn值为Yes(不区分大小写)的记录次数,要求包含所有用户,无符合记录的用户次数显示为0。

原始数据

Userid    loggedIn   
----    -----   
1   Yes       
1   yes       
1   No    
2   Yes         
2   No          
3   No          
4   yes        
5   yes        
1   No         

期望输出

Userid    Count   
----    -----   
1   2       
2   1          
3   0          
4   1        
5   1                

解决方案

可以通过SQL的GROUP BY结合条件统计函数实现,以下提供两种常用写法:

写法一:SUM + CASE WHEN

SELECT 
    Userid,
    SUM(CASE WHEN LOWER(loggedIn) = 'yes' THEN 1 ELSE 0 END) AS Count
FROM 
    your_table_name  -- 替换为你的实际表名
GROUP BY 
    Userid
ORDER BY 
    Userid;

写法二:COUNT + CASE WHEN

SELECT 
    Userid,
    COUNT(CASE WHEN LOWER(loggedIn) = 'yes' THEN 1 END) AS Count
FROM 
    your_table_name  -- 替换为你的实际表名
GROUP BY 
    Userid
ORDER BY 
    Userid;

关键说明

  • LOWER(loggedIn) = 'yes':统一转换为小写判断,兼容Yes/yes等不同大小写的情况
  • 两种写法核心逻辑一致:对每个用户的记录做条件判断,统计符合要求的数量,无符合记录时自动返回0
  • GROUP BY Userid确保每个用户仅返回一行统计结果,ORDER BY Userid让结果按用户ID排序,与期望输出一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:10:54