Autor Zpráva
Prochy
Profil
Zdravim,

je možné nějak setřídit data před seskupením? Momentálně to dělám tak, že provedu Join který vytvořím selectem, kde setřídim data. Nevim jestli to je optimální a je lepší řešení. Dělám to asi takto:

SELECT sloupce FROM tabulka GROUP BY seskupit
JOIN
.
.
.
JOIN (SELECT * FROM tabulka ORDER BY setridit)tabulka ON(......)

Je to možné takhle provést nebo je lepší řešení?

Děkuji :-)
Kajman
Profil
Prochy:
Je to možné takhle provést

Mysql to ladně neumí a ani tehle způsob nemusí funovat, pokud to teď vypadá, že to funguje.

Raději zkuste něco jako třetí příklad z Některé časteji řešené dotazy pro MySQL - FAQ » Nalezení řádků s maximální (minimální) hodnotou asi i jedním group by navíc, pokud není setridit jedinečné.

Nebo postresql a v něm distinct on.
Prochy
Profil
Děkuji za odpověď

Mohu se jenom optat, co tam může být v tom mém kódu za problém? Mám poměrně rozsáhlá data a nikde jsem si nevšiml, že by to házelo špatný výsledky.
Kajman
Profil
Manuál k mysql říká, že si sloupce nepoužité v group by ani neobalené agragační funkcí může dát libovolně.
http://dev.mysql.com/doc/refman/5.5/en/group-by-extensions.html

Ostatní databáze (a dle konfigurace i mysql) takový dotaz ani nepovolí.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: