→ knives:原來如此,感恩 06/10 08:28
※ 引述《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