Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie - ranking w konkursie
Forum PHP.pl > Forum > Bazy danych > MySQL
agmakonts
Witam biggrin.gif

Od dłuższego czasu siedzę nad zapytaniem do bazy które wygeneruje mi ranking uczestników konkursu.

W bazie przechowuje odpowiedzi już w formie dobra/zła oraz czas odpowiedzi.
Za cholerę nie wiem jak napisać zapytanie by licząc po ilości poprawnych odpowiedzi sortował po czasie ich udzielenia.
Męczyłem się z sumowaniem tego wszystkiego ale żadna z moich metod nie dała rady.
Pewnie rozwiązanie jest proste jak zwykle ale jakoś go nie widze sad.gif

Wygląda to tak:

  1. | id | user_id | question_id | time | correct |
  2. | 2 | 254 | 15 | 1254 | 1 |
  3. | 5 | 154 | 15 | 124 | 1 |
  4. | 6 | 18 | 14 | 54 | 0 |
  5. | 7 | 254 | 12 | 45 | 1 |
  6.  

#luq
Pokaż na przykładzie co chcesz otrzymać bo nie bardzo rozumiem.
Quadina
Wydaje mi się, że chodzi ci o zapytanie, które wyświetli ilość punktów zdobytych przez danego usera i posortowane dodatkowo po czasie, tak?

A więc:
  1. SELECT user_id, SUM(correct) AS punkty, SUM(time) AS czas FROM tabela GROUP BY user_id ORDER BY czas


Tylko nie jestem pewien czy można sortować po SUM - w dokumentacji mysql przeciwwskazań nie ma, ale jak coś to pisz spróbuj tak:


  1. SELECT
  2. user_id, punkty, czas
  3. FROM
  4. ( SELECT user_id, SUM(correct) AS punkty, SUM(time) AS czas FROM tabela GROUP BY user_id ) AS table1
  5. ORDER BY
  6. czas ASC

agmakonts
Dzięki wielki, przyznaje się ze trochę zapomniałem o temacie i udało się wykminić samemu ale i tak jeszcze raz dzięki:)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.