在SQL中对联接表进行分组结果

时间:2020-06-01 21:59:12

标签: mysql

我有一个用户表和profile_visits表

我正在尝试在profile_visits表中对访问者进行分组

我尝试了

SELECT users.ID, COUNT(profile_visits.profile_id) AS b_count 
FROM users 
INNER JOIN profile_visits on profile_visits.profile_id = users.ID 
GROUP BY users.ID
HAVING COUNT(profile_visits.profile_id) > 1
ORDER BY users.ID ASC

有了这个,我可以获得访客总数,但不能将访客分组

有什么主意吗?

2 个答案:

答案 0 :(得分:0)

据我了解,您根本不需要用户表

SELECT profile_id, COUNT(profile_visits.user_id) AS b_count 
FROM profile_visits
HAVING b_count > 1
ORDER BY profile_id ASC

答案 1 :(得分:0)

您应该计算profile_visits.user_id而不是profile_visits.profile_id。然后使用DISTINCT修饰符,这样您就只计算一次访问者,即可获得唯一身份访问者的数量。

SELECT users.ID, COUNT(DISTINCT profile_visits.user_id) AS b_count 
FROM users 
INNER JOIN profile_visits on profile_visits.profile_id = users.ID 
GROUP BY users.ID
HAVING b_count > 1
ORDER BY users.ID ASC