Pozycja w rankingu

HA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 27
0

Witam, mam tabele z rankingiem. Są tam pola:
id
punktu
podpis

Chciałbym wiedzieć jaką pozycję ma wiersz o wybranym id (np. 8).
Próbowałem
z zapytaniem:
SELECT COUNT(*) AS pozycja FROM ranking WHERE id<=8 ORDER BY punkty DESC
Ale zwracało id, bo najpierw dawało warunek, a potem liczyło. Czyli stwierdziłem, ze muszę wstawić warunek po sortowaniu. Znalazłem to:
SELECT COUNT(*) AS pozycja FROM ranking ORDER BY punkty DESC HAVING id<=8

Ale otrzymuję błąd MySQL:

Kopiuj
#1064 - Something is wrong in your syntax obok 'HAVING id<=8
LIMIT 0, 30' w linii 1 

Problem rozwiązałem licząc w pętli w php, ale jest to mniej optymalne i chciałbym policzyć to w mysqlu. Jakiego zapytania użyć?

Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
1
Kopiuj
SELECT COUNT(*) AS pozycja FROM ranking WHERE punkty >=  (select punkty from ranking where id = 8)

jeśli się będzie pluł to zamiast select punkty spróbuj select Max(punkty)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.