我有一个记录每个用户的页面浏览量的表:
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| view_id | int(11) | NO | PRI | NULL | auto_increment |
| page_id | int(11) | YES | MUL | NULL | |
| user_id | int(11) | YES | MUL | NULL | |
+--------------+--------------+------+-----+---------+----------------+
对于每一对用户,我想生成一个计数,以计算他们都查看了多少页。
我只是不知道该怎么做。 :) 我正在使用 mysql,以防它具有使这变得轻而易举的非标准功能。
最佳答案
select u1.user_id, u2.user_id, count(distinct u1.page_id) as NumPages
from logtable u1
join
logtable u2
on u1.page_id = u2.page_id
and u1.user_id < u2.user_id /* This avoids counting pairs twice */
group by u1.user_id, u2.user_id;
但是你应该考虑稍微过滤一下......
(上面编辑放了u1.page_id,原来只是page_id,实在是害我)
关于sql - SELECT 选择都查看过页面的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2159698/