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

单表Group by查询:统计用户资料被查看次数

解决用户资料被查看情况的统计问题

嗨,我来帮你搞定这个统计需求!

根据你的描述,需要从visits表中统计每个用户资料被查看的情况,按被查看用户(visited字段)分组。结合你给出的示例数据和期望结果,我分两种场景说明:

场景1:统计不同访客的数量(匹配你的期望结果)

从你给出的期望结果来看,你实际需要的是每个用户被多少个不同的访客查看过,而非总访问次数。这种情况下,我们需要用COUNT(DISTINCT visitor)来统计唯一访客数:

SELECT visited, COUNT(DISTINCT visitor) AS count
FROM visits
-- 如果需要关联用户列表确保只统计存在的用户,取消下面注释
-- JOIN users ON visits.visited = users.user_id
GROUP BY visited
ORDER BY count DESC;

执行后结果会和你期望的完全一致:

visitedcount
'26023'3
'26000'2

原因很直观:

  • 26023被3个不同访客(26000、26001、26002)查看过
  • 26000被2个不同访客(26005、26004)查看过

场景2:统计总访问次数

如果你确实需要统计每个用户被查看的总次数(同一个访客多次访问也累计),就用COUNT(*):

SELECT visited, COUNT(*) AS count
FROM visits
-- JOIN users ON visits.visited = users.user_id
GROUP BY visited
ORDER BY count DESC;

这个查询会得到:

visitedcount
'26023'10
'26000'3

对应示例数据中26023被访问了10次(7+2+1),26000被访问了3次(2+1)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:16:29