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

SQLite:如何统计用户在UserA与UserB列中的总出现次数?

解决方案:统计用户在两列中的总出现次数

要解决这个问题,核心是把user A和user B两列的用户数据整合到同一列中,再进行分组计数。直接按单列分组肯定满足不了需求,得先把两列的所有用户条目合并起来,具体SQL实现如下:

SELECT user, COUNT(*) AS total_count
FROM (
    -- 提取user A列的所有用户记录
    SELECT "user A" AS user FROM your_table_name
    UNION ALL
    -- 提取user B列的所有用户记录,UNION ALL会保留所有重复项,正好满足计数需求
    SELECT "user B" AS user FROM your_table_name
) AS combined_users
GROUP BY user
ORDER BY total_count DESC;

关键细节说明:

  • UNION ALL的作用:和UNION不同,它不会自动去重,这样每个用户在两列中的每一次出现都会被保留,确保计数准确。如果用UNION的话,会丢失重复的条目,统计结果就错了。
  • 子查询的意义:先通过子查询把两列数据合并成一个包含所有用户的单列结果集,外层查询再对这个结果集分组统计。
  • 排序优化:最后加上ORDER BY total_count DESC,可以让结果按出现次数从高到低排列,和你期望的输出顺序完全匹配。

用你提供的样本数据测试的话,子查询会生成这样的中间结果:

john
ron
ron
john
john
kyle

分组统计后就得到:john 3、ron 2、kyle 1,完全符合需求。

注意:记得把SQL里的your_table_name替换成你实际使用的表名哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:52:08