【发布时间】:2014-07-30 02:23:13
【问题描述】:
我有一个包含这两列的表格:
ip country
这些是我在我的网站上拥有的观众。我正在尝试查看我从每个国家/地区获得了多少唯一 IP。
我想出了这个:
SELECT DISTINCT ip, country, count(*) as views FROM views GROUP BY country
我希望这会按国家/地区选择不同 IP 的数量以及它们所在的国家/地区。然后我会有一个列 views 保存计数。
但这不起作用,此查询返回按国家/地区分组的总行数。不管有没有DISTINCT ip,我都会得到相同的结果。
编辑:我没有清楚地表达自己,我想弄清楚的是每个国家/地区有多少独特的 IP。
我的一些 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 -> 2
即:有两个不同的美国 IP 和两个不同的德国 IP。
【问题讨论】:
-
您能否发布输入行的示例和您希望输出的示例?在
GROUP BY的上下文中,很难理解您想要返回的 ip。 -
你是要获取国家、ips总数还是distinct ips总数,然后还要列出那些distinct ips?