我的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就是为了做到这一点......
谢谢你们。 :)
答案 0 :(得分:2)
SELECT userid, COUNT(DISTINCT ip) AS ipcount
FROM yourtable
GROUP BY userid