Autor Zpráva
radozaj
Profil
Ahoj, mám tabuľku (id, typ, datum) a potrebujem vypísať všetky 3 stĺpce a všetky riadky skupinkované podľa typu GROUP BY type, ďalej maximálny datum max(date), ale potrebuje aj id.
Problém je, že mi píše chybu, že id musí byť v agregovanej fukncii alebo v klauzuje groub by. Avšak asi je logické, že nemôže byť ani GROUP BY type,id a taktiež ani max(datum,type)
Prosím, ako sa toto rieši?
Ďakujem
Tori
Profil
radozaj:
ale potrebuje aj id.
No ale když seskupíte řádky podle typu, tak asi v každé skupině bude několik různých id, ne? Které z nich chcete?
radozaj
Profil
To, ktoré patrí k maximálnemu dátumu...
Tori
Profil
Třetí dotaz tady: Některé časteji řešené dotazy pro MySQL - FAQ » Nalezení řádků s maximální (minimální) hodnotou
radozaj
Profil
Ďakujem :)

Toto riešenie ma napadlo, ale vo WHERE clausule som nemal t1.kategorie = t3.kategorie. Mal som tam iba porovnania cien (datumov) a to nebolo jedinečné. S toutou podmienkou, to už je jedinečné.

Take super!
radozaj
Profil
Riešenie nie je úplne ideálne, pretože v prípade, že maximálna cena je rovnaká u 2 riadkov (samozrejme majú rovnaký typ), tak vypíše oba riadky.
Tori
Profil
A nedalo by se potom modifikovat hned ten následující příklad? Tj. pro každý typ najít korelovaným poddotazem jeden řádek s nejvyšším datumem (a sekundárně řadit třeba podle ID desc, abyste měl prioritně novější ze dvou odpovídajících záznamů), a potom na základě jeho ID vybrat data z hlavní tabulky?
Kajman
Profil
Nebo na ten výsledek použít ještě jednou group by.

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