MySQL - 每天最多1次计算每个IP的唯一视图

时间:2012-12-11 13:47:26

标签: mysql

我正在尝试获取每个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。

感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

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