作者danielguo (Daniel Guo)
看板Database
标题Re: [SQL ] 怎麽找出大於某数的资料
时间Thu Jun 9 06:06:54 2011
※ 引述《knives ()》之铭言:
: 我用的DBMS是 Mysql
: 我的table 有一个记录登入的ip的栏位lastloginip 跟该用户的uid
: 我想要用下面的sql找出,同一个ip,被多少的用户登入
: SELECT DISTINCT lastloginip ,s.uid,count(s.uid) as sc FROM `space` s
: GROUP BY lastloginip
: ORDER BY sc desc
: 这样的确是可行
: 但是我现在如果想要找出 sc > n 也就是用一个ip被n个以上的用户登入
: 我本来以为 直接用subquery
: WHERE (SELECT count(s.uid) sc FROM `space` s GROUP BY lastloginip ) > 1
: 可是会有 Subquery returns more than 1 row 的错误
: 请问该怎麽下才对
: 谢谢回答
用 HAVING 便可.
另外原先的 SQL 中用 GROUP BY lastloginip 便不需要 SELECT DISTINCT
SELECT s.`lastloginip`, s.`uid`, COUNT(s.`uid`) AS `sc`
FROM `space` s
GROUP BY s.`lastloginip`
HAVING `sc` > 1
ORDER BY `sc` DESC
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 71.107.127.201
1F:→ knives:原来如此,感恩 06/10 08:28