![]() |
![]() |
![]()
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: 56 Pomógł: 0 Dołączył: 27.10.2015 Ostrzeżenie: (0%) ![]() ![]() |
Czy byłby sens zapisać wyniki tego selecta w czymś w rodzaju "pamięci cache"?
Chodzi o to, że z czasem ta tabela z ocenami będzie miała bardzo dużo wierszy. Będę chciał zrobić np. takie rzeczy: - wyświetlić listę uczniów posortowaną wg. najlepszych ocen (wg. tych kryteriów, które podawałem wcześniej) z danego dnia roku (każdy dzień będzie miał swoją posortowaną listę na oddzielnej podstronie) - po kliknięciu w imię ucznia będzie pokazane, które zajął pozycję w tych dziennych listach Tak sobie pomyślałem, że jeżeli ta tabela z ocenami z czasem będzie miała milion i więcej wierszy, to takie zapytania mogą być bardzo obciążające dla serwera? A skoro te uporządkowane listy będę tworzone tylko raz na dzień, to może lepiej byłoby gdzieś je zapisać? Tylko jak to zrobić? Czy dobrym rozwiązaniem byłyby widoki? Czy widoków może być dowolna liczba w bazie (zdaje się, że liczba tabel w bazie jest ograniczona, stąd moje pytanie jak to będzie z widokami, skoro po roku zrobi się ich ponad 350 - jeden widok dla jednego dnia)? Ten post edytował Userr 29.11.2016, 14:31:15 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 07:30 |