SQL - COUNT()计数错误

时间:2015-05-16 23:21:20

标签: mysql sql count

我正在尝试计算个人资料访问次数,但它计算错误的数字。在以下示例中,应该有3次访问,但它数为6!有人知道它有什么问题吗? http://sqlfiddle.com/#!9/b43ea/8

SELECT *,
COUNT(profile_visitors.profile_id) AS visitorCount
FROM profile_visitors
LEFT JOIN user_login ON user_login.user_id = profile_visitors.user_id
WHERE profile_visitors.user_id = 1

3 个答案:

答案 0 :(得分:1)

您需要分组依据来计算多行,因此请将Star从您的查询中删除,并按user_id添加一个组,同时将其设为profile_visitors。*

答案 1 :(得分:1)

LEFT JOIN到user_login表没有为这个问题带来任何好处,但是,以下查询将为您提供您想要查看的详细信息(假设您只想查看user_id = 1的访问次数):

SELECT COUNT(profile_visitors.profile_id) AS visitorCount
FROM profile_visitors
WHERE profile_visitors.user_id = 1
GROUP BY profile_visitors.profile_id

要查看个人资料的所有访问次数:

SELECT profile_id, COUNT(profile_visitors.profile_id) AS visitorCount
FROM profile_visitors
GROUP BY profile_visitors.profile_id

答案 2 :(得分:0)

您可以使用WHERE IN ()来比较profile_visitors.user_id

中是否存在user_login
SELECT  *,
COUNT(profile_visitors.user_id) AS visitorCount
FROM profile_visitors
WHERE profile_visitors.user_id IN (SELECT user_id FROM user_login )

结果:

id  user_id   profile_id         visit_date             visitorCount
1   1              1          May, 10 2015 15:26:46           3