• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

MySQL kolejność GROUP BY

Object Storage Arubacloud
0 głosów
798 wizyt
pytanie zadane 27 listopada 2017 w SQL, bazy danych przez 123skiper Bywalec (2,170 p.)

Witam. Poniżej jest kod którego używam.

SELECT COUNT(scaner.Id) AS Count, products.Name AS Nazwa FROM scaner, products WHERE scaner.Code = products.Code GROUP BY scaner.Code

W tabeli scaner znajduje się kolumna Time. Czy istnieje możliwość sortowania wyników według największej wartości kolumny Time w grupie?

Dla przykładu w tabeli poniżej znajdują się trzy grupy (Code 2, 7, 8)

Id Code Time
1 2 15:00
2 8 13:00
3 7 17:00
4 2 14:00
5 8 12:00
6 2 22:00
7 7 8:00
8 8 10:00

Najnowszy (według kolumny Time) wiersz z grupy (grupowanie na podstawie Code) to 22:00.
Z grupy 17:00.
Z grupy 8 13:00

Chcę posortować te grupy wg. tej wartości Malejąco. W tym przykładzie kolejność to 2, 7, 8.

Mam nadzieję, że wytłumaczyłem to jasno :D Z góry dziękuję za wszystkie odpowiedzi

2 odpowiedzi

+2 głosów
odpowiedź 27 listopada 2017 przez jeremus Maniak (59,720 p.)
wybrane 27 listopada 2017 przez 123skiper
 
Najlepsza

musisz dodać :   order by max(scaner.time) - czyli funkcje agregujacą

całość tak :

select count(s.id),s.code,max(s.t) from scaner s,products c where c.code=s.code group by s.code order by max(s.t) desc

 

komentarz 27 listopada 2017 przez 123skiper Bywalec (2,170 p.)

Dzięki, działa smiley

+1 głos
odpowiedź 27 listopada 2017 przez mbabane Szeryf (79,280 p.)
Sprawdź klauzule ORDER BY dodawaną na końcu zapytania.
komentarz 27 listopada 2017 przez 123skiper Bywalec (2,170 p.)

W jaki sposób? ORDER BY scaner.Time DESC nie działa...

komentarz 27 listopada 2017 przez mbabane Szeryf (79,280 p.)
Tak
komentarz 27 listopada 2017 przez 123skiper Bywalec (2,170 p.)
Nie pomaga :(
1
komentarz 27 listopada 2017 przez mbabane Szeryf (79,280 p.)
Nie do konca tez rozumiem co chcesz osiagnac
komentarz 27 listopada 2017 przez 123skiper Bywalec (2,170 p.)

Chcę posortować grupy według największej wartości Time w tej grupie. Btw, dzięki za chęć pomocy :)

komentarz 27 listopada 2017 przez mbabane Szeryf (79,280 p.)
SELECT count(*) ilosc, scaner.code c, (SELECT max(time) FROM scaner WHERE scaner.code = c ) as maxTime
from scaner 
GROUP BY scaner.code  
ORDER BY maxTime DESC

Chyba coś takiego, trzeba było pobrać podzapytaniem max czas z danej grupy.

edit

Widze ze troche nadmiarowo to zrobilem.

Podobne pytania

+8 głosów
2 odpowiedzi 2,063 wizyt
pytanie zadane 15 sierpnia 2020 w Nasze projekty przez Mirosław Zelent Nałogowiec (34,750 p.)
+1 głos
2 odpowiedzi 602 wizyt
pytanie zadane 21 marca 2021 w SQL, bazy danych przez Paweł123 Nałogowiec (33,500 p.)
0 głosów
2 odpowiedzi 603 wizyt
pytanie zadane 1 grudnia 2018 w SQL, bazy danych przez hiper007 Stary wyjadacz (11,270 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...