我有一个包含这两列的表:
ip country这些是我在我的网站上看到的观众。我想看看我从每个国家得到了多少独特的I。
我想出了这个:
SELECT DISTINCT ip, country, count(*) as views FROM views GROUP BY country我希望这将选择不同的in数量和国家,他们是一个团体,他们的国家,按国家。然后,我将有一个列views保存计数。
但是这不起作用,这个查询将返回按国家分组的行总数。无论是否使用DISTINCT ip,我都会得到相同的结果。
编辑:我还没有清楚地表达自己,我想弄清楚的是,有多少不同的I来自每个国家,。
我的一些IP在数据库中是重复的,相同的IP出现3-4次.我想忽略这一点:
输入样本:
**ip** **country**
1.1.1.1 USA
1.1.1.1 USA
1.1.1.1 USA
1.1.1.1 USA
1.1.1.2 USA
1.1.1.2 USA
1.1.1.2 USA
1.1.1.3 GER
1.1.1.3 GER
1.1.1.5 GER应产出:
USA -> 2
GER -> 2ie:有两个来自美国的不同的IP和两个来自德国的不同的IP。
发布于 2014-07-30 02:29:51
试试这个:
SELECT
country,
count(DISTINCT ip) views
FROM views
GROUP BY country
ORDER BY country;发布于 2014-07-30 02:37:28
来自@Joseph B SQL的小更改
Select country, views
FROM (SELECT count(DISTINCT ip) views,
country
FROM views
GROUP BY country
ORDER BY country);https://stackoverflow.com/questions/25027803
复制相似问题