2016-09-26 115 views
-2

試圖找出我在這個SQLite查詢中做錯了什麼。我的sqlite查詢有什麼問題?

SELECT count(id),player,matchId 
FROM Goals 
GROUP BY matchId,player 
WHERE Goals > 2; 

編輯:找出什麼是錯的,抱歉的混亂。

+0

你在'Goals'表中有一個名爲'Goals'的列嗎? –

+0

你得到了什麼確切的錯誤信息?表格「Goals」有一個名爲'Goals'的列嗎? – redneb

+0

不,這對我來說是不正確的,但它不合適,並給我「GROUP」附近的錯誤消息:語法錯誤。 –

回答

2

Goals是一個表。您無法將其與數字進行比較。如何:

SELECT count(id), player, matchId 
FROM Goals 
GROUP BY matchId, player 
HAVING count(id) > 2; 

另外:

  • 要處理的聚合功能,使用HAVING,不WHERE
  • 您應該在SELECTGROUP BY中按相同的順序放置聚合列。只是整潔。
  • 如果你喜歡,你可以使用列別名,但你沒有一個用於計數。
+0

我收到一個錯誤,說「GROUP」附近:語法錯誤。 –

+0

@ J.A.R.E.D。 。 。語法很好:http://www.sqlfiddle.com/#!7/a7567。 –

1

where去之前group by

SELECT count(id),player,matchId 
FROM Goals 
WHERE Goals > 2 
GROUP BY matchId,player