Order by aplikovat pred Group by

Programovacie jazyky, rady, poradňa...
blazej44800
Amateur
Amateur
Príspevky: 30
Registrovaný: 18 jan 2012, 17:10
Bydlisko: Levoča
Kontaktovať používateľa:

Order by aplikovat pred Group by

Príspevok od používateľa blazej44800 »

Ahojte
Mám takýto sql príkaz:

Kód: Vybrať všetko

SELECT ride.date AS date, ride.time AS time, ride.time_tenth AS time_tenth, ride.speed AS speed, model.name AS model, producer.name AS name, user.user AS user, ride.id AS ride_id, ride.user_id AS user_id, ride.vehicle_id AS vehicle_id, ride.length AS length, ride.length_id AS length_id
 FROM `rides` AS ride
 JOIN `vehicles` AS vehicle ON vehicle.id = ride.vehicle_id
 JOIN `vehicles_producers` AS producer ON producer.id = vehicle.producer
 JOIN `vehicles_models` AS model ON model.id = vehicle.model
 JOIN `users` AS user ON ride.user_id = user.id
 
 GROUP BY ride.user_id, ride.vehicle_id, ride.length, ride.length_id
 ORDER BY ride.`time` ASC, ride.`time_tenth` ASC
Problém ale je že potrebujem výsledky najprv zoradiť podľa času (ride.time a ride.time_tenth) a následne použiť group by na zlúčenie podobných výsledkov. Neviete ako na to?


Vďaka :)
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Order by aplikovat pred Group by

Príspevok od používateľa TommyHot »

Nieco podobne som riesil vnorenym selectom, ale pri tolkych joinoch to bude obrovska zataz na system. Bohuzial MySQL je hlupa databaza a nedokaze defaultne najskor triedit az potom grupovat.
blazej44800
Amateur
Amateur
Príspevky: 30
Registrovaný: 18 jan 2012, 17:10
Bydlisko: Levoča
Kontaktovať používateľa:

Re: Order by aplikovat pred Group by

Príspevok od používateľa blazej44800 »

A aku db odporucas ktora to podporuje?
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Order by aplikovat pred Group by

Príspevok od používateľa TommyHot »

Mam pocit, ze oracle to podporuje, ale to ti velmi nepomoze :)
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Order by aplikovat pred Group by

Príspevok od používateľa harrison314 »

Tu mas nato nejake example http://stackoverflow.com/questions/5140 ... e-group-by ,
mozno ty pomoze ten z HAVING
sanyika
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 364
Registrovaný: 11 apr 2006, 15:35
Bydlisko: Treti smetiak vpravo....d

Re: Order by aplikovat pred Group by

Príspevok od používateľa sanyika »

skus pouzit v selecte funkcie MIN() a MAX()
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Re: Order by aplikovat pred Group by

Príspevok od používateľa mastermind »

AD 1: aky vyznam ma ORDER BY pred GROUP BY?
AD 2: to SQL co si tu poslal vobec funguje? GROUP BY bez agregacnej funkcie?
ropman
Medium Professional
Medium Professional
Príspevky: 1250
Registrovaný: 12 apr 2010, 21:07

Re: Order by aplikovat pred Group by

Príspevok od používateľa ropman »

mysql umoznuje selectovat aj stlpce bez agregacnej funkcie
inak nebude to fungovat tak ze si vytvoris taketo aliasy:

Kód: Vybrať všetko

select ... max(time) as maxTime ...
a potom das

Kód: Vybrať všetko

order by maxTime
Napísať odpoveď