2016-09-26 61 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