2016-09-26 2 views
-2

Ich versuche herauszufinden, was ich in dieser SQLite-Abfrage falsch mache.Was ist falsch mit meiner SQLite Abfrage?

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

Edit: Herausgefunden, was war falsch, sorry für die Verwirrung.

+0

Sie haben in Ihrer Tabelle "Goals" eine Spalte namens "Goals"? –

+0

Was ist die genaue Fehlermeldung, die Sie erhalten? Hat die Tabelle "Tore" eine Spalte namens "Tore"? – redneb

+0

Nein, das war falsch von mir, aber es passt nicht und gibt mir die Fehlermeldung in der Nähe von "GROUP": Syntaxfehler. –

Antwort

2

Goals eine Tabelle ist. Sie können es nicht mit einer Nummer vergleichen. Wie wäre es:

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

Zusätzlich:

  • Aggregationsfunktionen zu umgehen, verwenden Sie HAVING, nicht WHERE.
  • Sie sollten die Aggregationsspalten in der gleichen Reihenfolge in die SELECT und GROUP BY setzen. Sei einfach nett.
  • Sie könnten einen Spaltenalias verwenden, wenn Sie möchten, aber Sie haben keinen für die Zählung.
+0

Ich bekomme eine Fehlermeldung, die nahe "GROUP" sagt: Syntaxfehler. –

+0

@ J.A.R.E.D. . . Die Syntax ist in Ordnung: http://www.sqlfiddle.com/#!7/a7567. –

1

where geht vor group by

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