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

查询4个用户表中至少出现3次的公共重复用户名及计数

多表用户名出现次数统计方案

嘿,针对你这个要从四个表中找出总出现次数至少3次的用户名的需求,我整理了一个清晰的SQL解决方案:

首先,我们需要把四个表的username数据全部合并起来(要保留所有重复记录,所以不能用UNION,得用UNION ALL),然后统计每个用户名的出现次数,最后筛选出符合条件的结果。

最终SQL代码

SELECT username, COUNT(*) AS occurrence_count
FROM (
    -- 合并四个表的所有username记录
    SELECT username FROM visitorA
    UNION ALL
    SELECT username FROM visitorB
    UNION ALL
    SELECT username FROM visitorC
    UNION ALL
    SELECT username FROM visitorD
) AS combined_user_data
GROUP BY username
-- 筛选出现次数≥3的用户
HAVING COUNT(*) >= 3
-- 按出现次数从高到低排序
ORDER BY occurrence_count DESC;

代码细节解释

  • 合并数据:子查询里的UNION ALL会把四个表的username列全部整合到一个临时数据集里,哪怕同一个用户名在多个表出现,也会全部保留,这是统计总次数的关键。
  • 分组统计:GROUP BY username会把相同用户名的记录归为一组,COUNT(*)就能算出每个组里的记录数,也就是该用户名的总出现次数。
  • 筛选结果:HAVING COUNT(*) >= 3用来过滤出总出现次数至少3次的用户,这里必须用HAVING而不是WHERE,因为WHERE只能在分组前过滤原始数据,而我们需要基于分组后的统计结果来筛选。
  • 排序输出:ORDER BY occurrence_count DESC让结果按出现次数从高到低排列,和你给出的预期输出顺序完全匹配。

执行结果

运行这段SQL后,会得到你想要的结果:

username | occurrence_count
---------|------------------
swapnil  | 4
sanjay   | 3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:53:57