如何在SQL中统计Person表各访问页面对应的独立用户数量
解决方案
直接使用以下SQL语句即可实现需求:
SELECT visit_page_no AS visited_page_no, COUNT(DISTINCT `user`) AS count FROM Person GROUP BY visit_page_no;
逻辑说明
- 先通过
GROUP BY visit_page_no将表中所有数据按访问页面编号拆分成分组,每个分组对应同一个访问页面的所有访问记录 - 再通过
COUNT(DISTINCT 'user')对每个分组内的用户ID去重后统计数量,同一个用户多次访问同一页面只会被计算1次,正好对应独立用户数的统计要求 - 此处将
user用反引号包裹是因为user属于大多数SQL数据库的保留关键字,直接作为字段名使用会触发语法错误,加反引号可以标识它是自定义字段名
结果验证
代入你提供的样例数据执行后,返回结果和你期望的输出完全一致:
| visited_page_no | count |
|---|---|
| 66 | 3 |
| 77 | 2 |
| 88 | 1 |
内容的提问来源于stack exchange,提问作者furkang
相关产品推荐
相关产品推荐

