我正在尝试获取每个IP的唯一视图,每天最多使用MySQL查询返回1次。
该表如下所示:
product_id time ip
INT TIMESTAMP VARCHAR
查询应随时返回唯一视图,但它应筛选产品 ID,以便每个产品都有自己的唯一视图字段。表中的 IP 地址应每天计算一次 MAX。我将在下面的查询中为您提供一些详细信息,哪些内容应该计算在内,哪些内容不应该计算在内:
product_id DATE(time) ip should_be_counted
11 2012-12-14 1.1.1.1 YES
11 2012-12-14 1.1.1.2 YES
11 2012-12-14 1.1.1.1 NO
11 2012-12-13 1.1.1.1 YES
11 2012-12-13 1.1.1.1 NO
Should be returned:
product_id unique_views
11 3
这就是我想要的:
product_id unique_views
11 103
8 53
2 3
1 1
这意味着查询应使用 ORDER BY unique_views DESC。
感谢您的帮助!
SELECT Product_ID, SUM(unique_view) unique_views
FROM
(
SELECT Product_ID, COUNT(DISTINCT IP) unique_view
FROM tableName
GROUP BY Product_ID, DATE(time)
) x
GROUP BY Product_ID
- SQLFiddle 演示