GROUP BY

Základní kurs podávající průřez problematikou. Jsou popsány tři úrovně pohledu na data. Konceptuální modelování je založeno na ER modelu, databázové modelování se zabývá podrobně teorií relačního modelu dat (algebra, kalkul, základy SQL, algoritmy návrhu relační databáze, normální formy) a principy objektově-relačního modelu. Transakční zpracování a paralelní přístup, algoritmy implementace relačních operací.
Bečis
Matfyz(ák|ačka) level I
Příspěvky: 19
Registrován: 4. 2. 2006 13:53

GROUP BY

Příspěvek od Bečis »

To bude asi blbej dotaz, ale když použiju v SELECT GROUPBY, pak v SELECT můžu přistupovat na superřádky přes agregační funkce, ale co když chci např maximum z těch superřádků? Můžu napsat SELECT MAX(AVG(hodnota)) FROM tabulka GROUPBY neco ?
Open mind is like a fortress, with its gates unbarred and unguarded
Uživatelský avatar
hydrant
Matfyz(ák|ačka) level III
Příspěvky: 196
Registrován: 4. 1. 2005 12:50
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Příspěvek od hydrant »

ja by som radsej napisal

Kód: Vybrat vše

SELECT MAX(aa) FROM (SELECT AVG(ww) AS aa FROM tab GROUP BY uu)
ale ja mam tiez dotaz ked sme pri tom
chcem vybrat spolocnosti ktore splnuju nejaky priemer cestujucich, ale ten priemer nechcem mat vo vyslednej tabulke....

Kód: Vybrat vše

SELECT spolocnost, AVG(cestujuci) as priemer FROM lety GROUP BY spolocnost HAVING priemer > 100

to viem ze funguje... ale da sa takto?

SELECT spolocnost FROM lety GROUP BY spolocnost HAVING AVG(cestujuci) > 100

alebo proste nejako aby som vo vyslednej tabulke nemal ten priemer, a aby som to nebudel cele oblozit este jednym selectom
thx
Uživatelský avatar
Kate
Matfyz(ák|ačka) level III
Příspěvky: 146
Registrován: 8. 1. 2005 10:52
Typ studia: Informatika Mgr.
Bydliště: Milada squat
Kontaktovat uživatele:

Re: GROUP BY

Příspěvek od Kate »

Bečis píše:To bude asi blbej dotaz, ale když použiju v SELECT GROUPBY, pak v SELECT můžu přistupovat na superřádky přes agregační funkce, ale co když chci např maximum z těch superřádků? Můžu napsat SELECT MAX(AVG(hodnota)) FROM tabulka GROUPBY neco ?
to je otázka, jak se to vyhodnocuje :? . ja bych to neriskovala a napsala to vic strukturovane i za cenu delky.

vnoreny SELECT vrati tabulku s prumery podle superradku ("neco") a ten vnejsi si z nich vytahne maximum

SELECT MAX(h)
FROM ( SELECT AVG(hodnota) AS h
FROM tabulka GROUPBY neco )

aspon doufam,
to vedro a DB je vrazdena kombinace :D
Keleen
Matfyz(ák|ačka) level II
Příspěvky: 90
Registrován: 19. 1. 2005 22:20

Příspěvek od Keleen »

hydrant píše:ja by som radsej napisal
ale da sa takto?

SELECT spolocnost FROM lety GROUP BY spolocnost HAVING AVG(cestujuci) > 100

alebo proste nejako aby som vo vyslednej tabulke nemal ten priemer, a aby som to nebudel cele oblozit este jednym selectom

thx
Podle me by to takhle vklidu melo jit...nevidim zadnej duvod proc ne...to pojmenovavani delas vpodstate, protoze to ve vysledku mit chces, kdyz to tam mit nechces, jenom to takhle pouzijes.
Ale muzu se mylit;).
Uživatelský avatar
Kate
Matfyz(ák|ačka) level III
Příspěvky: 146
Registrován: 8. 1. 2005 10:52
Typ studia: Informatika Mgr.
Bydliště: Milada squat
Kontaktovat uživatele:

to hydrant

Příspěvek od Kate »

jsme pekne odpovedeli soubezne a tesi me, ze stejne nejen v case :)
Uživatelský avatar
hydrant
Matfyz(ák|ačka) level III
Příspěvky: 196
Registrován: 4. 1. 2005 12:50
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Příspěvek od hydrant »

2kate :D

2keleen thx
Odpovědět

Zpět na „DBI025 Databázové systémy“