计算列,然后在SQL中将两列分组

时间:2012-05-03 02:09:31

标签: mysql count group-by

我的SQL语法可能有点生疏,所以我几乎不可能自己解决这个问题。我有一个典型的MySQL安装,下面的表是“历史”。

userid        ip
----------- ----------
1            123.123.123.123  
1            123.123.123.123    
1            111.111.111.111    
2            213.213.213.213
2            214.214.214.214
2            215.215.215.215
3            163.123.121.123
4            111.222.121.212

基本上,我正在某些用户ID下记录某些内容以及他们当前使用的IP地址(以及其他内容,但这不是必需的)。但是,我想要实现的最后一项任务是为每个用户创建一个列表,其中包含了多少IP。在这种情况下的最终结果将是。

userid       ipcount
-----------  ----------  
1            2  
2            3
3            1
4            1

我知道这有可能以某种方式,但我是SQL的新手(我能够得到计数,但不能用userid对它进行分组)。我可以在抓取中用PHP执行此操作,但这对服务器来说是额外的重载(目前我有大约5K条目)。 SQL就是为了做到这一点......

谢谢你们。 :)

1 个答案:

答案 0 :(得分:2)

SELECT userid, COUNT(DISTINCT ip) AS ipcount
  FROM yourtable
 GROUP BY userid