21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
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:

0