【问题标题】:MySQL - Count unique views per IP max 1 time per dayMySQL - 计算每个 IP 的唯一视图,每天最多 1 次
【发布时间】:2012-12-11 21:56:19
【问题描述】:

我正在尝试获取每个 IP 的唯一视图,每天最多计算 1 次,使用 MySQL 查询返回。

表格如下所示:

product_id          time          ip
INT                 TIMESTAMP     VARCHAR

查询应随时返回唯一视图,但应过滤产品 ID,以便每个产品都有自己的唯一视图字段计数。表中的 IP 地址应每天最多计算一次。我将在下面的查询中为您详细说明应该和不应该计算的内容:

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。

感谢您的帮助!

【问题讨论】:

    标签: mysql


    【解决方案1】:
    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 2014-08-05
      • 2011-05-12
      • 1970-01-01
      相关资源
      最近更新 更多