【问题标题】:mysql select unique users in table and count them multiple times based on a columnmysql在表中选择唯一用户并根据一列对其进行多次计数
【发布时间】:2015-10-16 16:35:32
【问题描述】:

如果我有这样的表:

id | vid  | cid   | ipaddress 
 1 | 1    | 1     | 1.1.1.1
 2 | 1    | 1     | 1.1.1.1
 3 | 1    | 1     | 1.1.1.2
 4 | 2    | 1     | 2.2.2.2
 5 | 2    | 1     | 2.2.2.2
 6 | 2    | 1     | 2.2.2.2

vid 是访问者 ID,cid 是活动 ID

如果访问者访问活动,则访问将被捕获到表中。然后我想显示唯一访问次数,不是基于用户,而是基于用户和 ip。因此,对于上面的数据,它是 2 个用户和 1 个使用 2 个不同 ip 地址访问的用户,那么我如何进行选择查询以选择不同的访问者,但如果访问者使用多个 ip 地址,则多次计算访问者?以上捕获的数据应显示的总数为 3 次唯一访问。

【问题讨论】:

  • 您是否尝试过任何查询?

标签: mysql sql


【解决方案1】:

你可以试试这个:-

SELECT vid, count(distinct(IP)) AS dstn from test

【讨论】:

    【解决方案2】:

    尝试类似:

    SELECT vid, COUNT(DISTINCT ipaddress) AS ip_address_count
    FROM mytable
    GROUP BY vid
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      相关资源
      最近更新 更多