mysql选择表中的唯一用户,并根据列对它们进行多次计数

时间:2015-10-16 16:35:32

标签: mysql sql

如果我有这样的表:

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次唯一访问。

2 个答案:

答案 0 :(得分:2)

你可以试试这个: -

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

enter image description here

答案 1 :(得分:1)

尝试类似:

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