![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 27.10.2015 Ostrzeżenie: (0%) ![]() ![]() |
Mam taką tabelę z polami: id INT, id_ucznia INT, imie_ucznia VARCHAR, oceny INT
Jej zawartość: 1, 1, Janek, 4 2, 3, Kasia, 5 3, 3, Kasia, 4 4, 2, Paweł, 3 5, 1, Janek, 4 6, 2, Paweł, 5 7, 2, Kasia, 5 8, 1, Janek, 2 9, 4, Robert, 3 10, 3, Kasia 4 11, 4, Robert, 4 12, 4, Robert, 4 Chciałbym, żeby wyświetlić uczniów w kolejności od najlepszych, do najsłabszych ocen. Z tym, że jeżeli jacyś uczniowie mają piątki, to liczy się liczba piątek (uczeń z większą liczbą piątek będzie przed uczniem z mniejszą liczbą piątek). Jeżeli okaże się, że jacyś uczniowie mają taką samą liczbą piątek, to liczy się liczba czwórek, itd. Chciałbym więc taką kolejność: 1. Kasia – 5, 5, 4, 4 2. Paweł – 5, 3 3. Robert – 4, 4, 3 4. Janek – 4, 4, 2 Jakim zapytaniem MySQL można by to było osiągnąć? Pewnie trzeba będzie wykorzystać GROUP BY i ORDER BY? Ten post edytował Userr 27.11.2016, 13:14:34 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 807 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
ale chciałbym z ciekawości zapytać w jaki sposób mógłbym połączyć ten kod:
z poniższym zapytaniem?
Wstawiasz @numer:=@numer+1 AS numer na listę pól w SELECT, a (SELECT @numer:=0) AS n na listę we FROM głównego zapytania. 5,5,5 jest lepsze od 5,5, ale co ciekawsze 5,3,3 jest lepsze od samego 5 (IMG:style_emoticons/default/smile.gif) To w takim razie moje zapytanie chyba będzie błędne. Wystarczy więc ORDER BY alias_dla_GROUP_CONCAT, to co sugerował mihmih. Do sprawdzenia. Ten post edytował trueblue 28.11.2016, 12:25:03 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 18:52 |