SQL计数过滤

时间:2014-07-03 02:41:03

标签: mysql sql count

对能够提供帮助甚至尝试的人表示赞赏。

所以我有一个桌子,GameHub,每场比赛1记录表明一个人玩这个游戏。 游戏中心:

Game ID Person
    33  1234
    34  1234
    38  1234
    38  1235
    33  1235

所以2人玩了游戏33和38,只有1人玩了游戏34。

我一直在努力寻找能够抓住至少2人玩过的游戏的SQL。

我所拥有的最好(不起作用)将是:

SELECT GameHub.gameid FROM 'GameHub' HAVING COUNT(GameHub.personid) > 1 

可悲的是,这听起来很简单,我只是不能破解它。有人看到我的错误吗?

谢谢, 汤姆。

  • 更新 -

更改了:

SELECT GameHub.gameid FROM GameHub HAVING COUNT(GameHub.personid) > 1

但只有" 33"得到回报,我怎么能得到33和38?

1 个答案:

答案 0 :(得分:1)

您错过了Group by,它会告诉您根据GameHub.gameid对结果进行分组

SELECT GameHub.gameid 
FROM 'GameHub' 
GROUP BY GameHub.gameid
HAVING COUNT(GameHub.personid) > 1 

<强>更新 如果这是您的实际sql,请尝试添加您在Group by

中添加的列
SELECT GameHub.gameid, 
       GameMeta.gamedate 
FROM GameHub JOIN GameMeta 
 ON GameHub.gameid = GameMeta.gameid 
GROUP BY GameHub.gameid, GameMeta.gamedate 
HAVING COUNT( GameHub.personid ) >1;