我假设您URL
在visitorLog
表中的字段是foreign_key 和整数字段。
SELECT v1.VisitorID, COUNT(v1.VisitorID) AS TotalVisits
FROM `VisitorLog` v1, ?? as v2
WHERE v1.URL = v2.URL_ID
AND v2.URL NOT LIKE "%page=checkout%"
GROUP BY VisitorID
据我了解,例如。
id visitor_id 日期时间页面
1 月 1 日 11 月 4 日 关于我们
2 月 1 日 11 月 4 日 联系我们
3 2 Nov4 关于我们
4 月 2 日 11 月 3 日 关于我们
5 月 2 日 11 月 4 日回家
6 月 1 日 11 月 4 日回家
选择 visitor_id, count(id) 作为访问次数
FROM visit_table_transaction
WHERE 日期时间 = "Nov4"
按访客 ID 分组
访问次数 > 2
所以结果是
visitor_id 访问次数
1 3
为什么需要使用having
,因为聚合函数不能用于WHERE
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html
你也可以这样写
select visitor_id, count(id) as numberofvisits
FROM visit_table_transaction
WHERE datetime = "Nov4"
GROUP BY visitor_id
HAVING count(id) > 2
下面错了
select visitor_id, count(id) as numberofvisits
FROM visit_table_transaction
WHERE datetime = "Nov4"
AND count(id) > 2
GROUP BY visitor_id
如果我错了,请任何人纠正我。谢谢。