2014-07-03 30 views
0

非常感謝任何能夠幫助甚至嘗試的人。計數上的SQL過濾

所以我有一張表,GameHub,每個遊戲1條記錄表示玩過遊戲的人。 遊戲中心:

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

所以2人玩的遊戲33和38,只有1場比賽出場34

我一直在苦苦尋找一個SQL,將搶只有在至少2個的人有gameids播放。

我有(不工作)最好的是:

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

可悲的是像這樣簡單的聲音,我就不能破解它。任何人看到我的錯誤?

謝謝, 湯姆。

  • 更新 -

改變了:

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

但只有 「33」 被退回,我怎麼能得到33和38?

+0

'GROUP BY gameid' –

+0

嘿,PM謝謝! – user3799852

回答

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; 
+0

「人」分組的目的是什麼? –

+0

啊確實..'人'已經在'Count()' – Charlesliam

+0

這太快了,不會讓我接受答案!謝謝Charles。 – user3799852