Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
divERgenT Forumaš(ica)
Pridružen/a: 04. 03. 2004. (17:41:15) Postovi: (4B)16
Lokacija: Tu negdje
|
Postano: 8:01 čet, 13. 12. 2007 Naslov: mala nejasnoca |
|
|
Kad kaze pripazite da polja koja se ne pojavljuju kao f(polje), nego samo kao polje, valjda, moraju biti navedena u group by djelu, jel to znaci sva takva polja moraju bit u group by djelu ak ga ima, sva polja u group by djelu moraju bit u ovom prvom il te dvije grupe moraju bit jednake. I ovo pripazite, jel to znaci da moram pazit da vrjedi jedno od ovog gore, il sve to kaze kako nebi pomislili da ce doc istim redosljedom
Kad kaze pripazite da polja koja se ne pojavljuju kao f(polje), nego samo kao polje, valjda, moraju biti navedena u group by djelu, jel to znaci sva takva polja moraju bit u group by djelu ak ga ima, sva polja u group by djelu moraju bit u ovom prvom il te dvije grupe moraju bit jednake. I ovo pripazite, jel to znaci da moram pazit da vrjedi jedno od ovog gore, il sve to kaze kako nebi pomislili da ce doc istim redosljedom
|
|
[Vrh] |
|
damirko Forumaš(ica)
Pridružen/a: 13. 03. 2007. (11:27:32) Postovi: (2C)16
Spol:
|
Postano: 10:12 čet, 13. 12. 2007 Naslov: Re: mala nejasnoca |
|
|
[quote="divERgenT"]Kad kaze pripazite da polja koja se ne pojavljuju kao f(polje), nego samo kao polje, valjda, moraju biti navedena u group by djelu, jel to znaci sva takva polja moraju bit u group by djelu ak ga ima, sva polja u group by djelu moraju bit u ovom prvom il te dvije grupe moraju bit jednake. I ovo pripazite, jel to znaci da moram pazit da vrjedi jedno od ovog gore, il sve to kaze kako nebi pomislili da ce doc istim redosljedom[/quote]
Ispravan SQL upit koji sadrži agregatne funkcije u GROUP BY dijelu mora imati pobrojane SVE kolone koje su pobrojane u SELECT dijelu, a nisu argumenti agregatnih funkcija. U GROUP BY dijelu one nužno ne moraju biti pobrojane istim redoslijedom kao i u SELECT dijelu.
Pretpostavljam da je autor zadatka želio da se provjeri da je sintaksa takvog upita sukladna uobičajenoj SQL sintaksi.
divERgenT (napisa): | Kad kaze pripazite da polja koja se ne pojavljuju kao f(polje), nego samo kao polje, valjda, moraju biti navedena u group by djelu, jel to znaci sva takva polja moraju bit u group by djelu ak ga ima, sva polja u group by djelu moraju bit u ovom prvom il te dvije grupe moraju bit jednake. I ovo pripazite, jel to znaci da moram pazit da vrjedi jedno od ovog gore, il sve to kaze kako nebi pomislili da ce doc istim redosljedom |
Ispravan SQL upit koji sadrži agregatne funkcije u GROUP BY dijelu mora imati pobrojane SVE kolone koje su pobrojane u SELECT dijelu, a nisu argumenti agregatnih funkcija. U GROUP BY dijelu one nužno ne moraju biti pobrojane istim redoslijedom kao i u SELECT dijelu.
Pretpostavljam da je autor zadatka želio da se provjeri da je sintaksa takvog upita sukladna uobičajenoj SQL sintaksi.
|
|
[Vrh] |
|
divERgenT Forumaš(ica)
Pridružen/a: 04. 03. 2004. (17:41:15) Postovi: (4B)16
Lokacija: Tu negdje
|
|
[Vrh] |
|
damirko Forumaš(ica)
Pridružen/a: 13. 03. 2007. (11:27:32) Postovi: (2C)16
Spol:
|
Postano: 10:12 pet, 14. 12. 2007 Naslov: |
|
|
[quote="divERgenT"]zahvaljujem na odgovoru, nisam ni pogledo baze pa nalazim poteskoce na glupostima,
josh nesh, jel se funkcija u having mora pojavljivat u select djelu,[/quote]
Ja ti se s bazama bavim zadnjih 10 godina :)
Hm... Kad već pitaš - funkcija koja se pojavljuje u having dijelu se ne mora pojavljivati i u select dijelu (barem koliko znam za MS SQL server i Oracle, a kako je po ANSI SQL standardu ne bih znao reći ovak napamet)
E sad, to bi značilo da čim imaš jednu grupnu funkciju nad određenom kolonom trebaš izračunati i sve ostale grupne funkcije.
No nisam ti siguran da li je ideja autora zadatka da se napravi nekakav ANSI SQL compliant database engine, pa ako se tu napravi kakav propustić valjda nam neće ruku frkati :wink:
divERgenT (napisa): | zahvaljujem na odgovoru, nisam ni pogledo baze pa nalazim poteskoce na glupostima,
josh nesh, jel se funkcija u having mora pojavljivat u select djelu, |
Ja ti se s bazama bavim zadnjih 10 godina
Hm... Kad već pitaš - funkcija koja se pojavljuje u having dijelu se ne mora pojavljivati i u select dijelu (barem koliko znam za MS SQL server i Oracle, a kako je po ANSI SQL standardu ne bih znao reći ovak napamet)
E sad, to bi značilo da čim imaš jednu grupnu funkciju nad određenom kolonom trebaš izračunati i sve ostale grupne funkcije.
No nisam ti siguran da li je ideja autora zadatka da se napravi nekakav ANSI SQL compliant database engine, pa ako se tu napravi kakav propustić valjda nam neće ruku frkati
|
|
[Vrh] |
|
Marko Forumaš(ica)
Pridružen/a: 16. 06. 2004. (11:05:48) Postovi: (71)16
Spol:
|
|
[Vrh] |
|
pecina Forumaš(ica)
Pridružen/a: 19. 01. 2005. (14:15:23) Postovi: (157)16
Spol:
Lokacija: Happily traveling through space since 1986!
|
Postano: 17:24 sub, 15. 12. 2007 Naslov: |
|
|
Zanima me nešto u vezi GROUP BY, da li onda agregatne funkcije rade na različitim n-torkama gdje je n broj polja u SELECT-u?
Konkretno, SELECT spol, zaposlen, COUNT(jmbg), MAX(visina) FROM osobe GROUP BY spol, zaposlen;
Znači li to da se gledaju samo stupci spol i zaposlen a agregatne funkcije računaju na grupi [b]istih[/b] parova (spol,zaposlen) a onda se sortira prvo po spolu, pa oni koji imaju isti spol onda se sortiraju po zaposlenju?
Znači imamo 4 kombinacije
f da
f ne
m da
m ne
po kojima agregatne funkcije zbrajaju i uzimaju maksimum?
Zanima me nešto u vezi GROUP BY, da li onda agregatne funkcije rade na različitim n-torkama gdje je n broj polja u SELECT-u?
Konkretno, SELECT spol, zaposlen, COUNT(jmbg), MAX(visina) FROM osobe GROUP BY spol, zaposlen;
Znači li to da se gledaju samo stupci spol i zaposlen a agregatne funkcije računaju na grupi istih parova (spol,zaposlen) a onda se sortira prvo po spolu, pa oni koji imaju isti spol onda se sortiraju po zaposlenju?
Znači imamo 4 kombinacije
f da
f ne
m da
m ne
po kojima agregatne funkcije zbrajaju i uzimaju maksimum?
_________________ -- space available for rent --
|
|
[Vrh] |
|
Melkor Forumaš(ica)
Pridružen/a: 07. 10. 2004. (18:48:00) Postovi: (291)16
Spol:
Lokacija: Void
|
Postano: 18:55 sub, 15. 12. 2007 Naslov: |
|
|
[quote="pecina"]Konkretno, SELECT spol, zaposlen, COUNT(jmbg), MAX(visina) FROM osobe GROUP BY spol, zaposlen;
Znači li to da se gledaju samo stupci spol i zaposlen a agregatne funkcije računaju na grupi [b]istih[/b] parova (spol,zaposlen) a onda se sortira prvo po spolu, pa oni koji imaju isti spol onda se sortiraju po zaposlenju?[/quote]
Tako je.
Jednu grupu čine zapisi koji se podudaraju u svim atributima navedenim u GROUP BY dijelu. Agregatne funkcije djeluju na svaku grupu zasebno.
pecina (napisa): | Konkretno, SELECT spol, zaposlen, COUNT(jmbg), MAX(visina) FROM osobe GROUP BY spol, zaposlen;
Znači li to da se gledaju samo stupci spol i zaposlen a agregatne funkcije računaju na grupi istih parova (spol,zaposlen) a onda se sortira prvo po spolu, pa oni koji imaju isti spol onda se sortiraju po zaposlenju? |
Tako je.
Jednu grupu čine zapisi koji se podudaraju u svim atributima navedenim u GROUP BY dijelu. Agregatne funkcije djeluju na svaku grupu zasebno.
_________________ I don't know half of you half as well as I should like; and I like less than half of you half as well as you deserve.
|
|
[Vrh] |
|
damirko Forumaš(ica)
Pridružen/a: 13. 03. 2007. (11:27:32) Postovi: (2C)16
Spol:
|
Postano: 19:00 sub, 15. 12. 2007 Naslov: |
|
|
[quote="pecina"]Zanima me nešto u vezi GROUP BY, da li onda agregatne funkcije rade na različitim n-torkama gdje je n broj polja u SELECT-u?
Konkretno, SELECT spol, zaposlen, COUNT(jmbg), MAX(visina) FROM osobe GROUP BY spol, zaposlen;
Znači li to da se gledaju samo stupci spol i zaposlen a agregatne funkcije računaju na grupi [b]istih[/b] parova (spol,zaposlen) a onda se sortira prvo po spolu, pa oni koji imaju isti spol onda se sortiraju po zaposlenju?
Znači imamo 4 kombinacije
f da
f ne
m da
m ne
po kojima agregatne funkcije zbrajaju i uzimaju maksimum?[/quote]
Ne znam na koji način si organizirao podatke i kako realiziraš GROUP BY, ali inače se za sortiranje podataka u SQL-u koristi ORDER BY. GROUP BY služi upravo za ono što si naveo - da se agregatne funkcije izračunaju na grupi istih n-torki neagregatnih kolona. Nigdje u zadatku nisam vidio eksplicitan zahtjev da rezultat mora biti ispisan nekakvim sortiranim redoslijedom, a što možeš očekivati ako se pouzdaš da GROUP BY sortira u stvarnom životu možeš vidjeti ovdje: http://laurentschneider.com/wordpress/2005/08/group-by-does-not-sort.html
http://tkyte.blogspot.com/2005/08/order-in-court.html
Želim ti uspješnu implementaciju group by :)
pecina (napisa): | Zanima me nešto u vezi GROUP BY, da li onda agregatne funkcije rade na različitim n-torkama gdje je n broj polja u SELECT-u?
Konkretno, SELECT spol, zaposlen, COUNT(jmbg), MAX(visina) FROM osobe GROUP BY spol, zaposlen;
Znači li to da se gledaju samo stupci spol i zaposlen a agregatne funkcije računaju na grupi istih parova (spol,zaposlen) a onda se sortira prvo po spolu, pa oni koji imaju isti spol onda se sortiraju po zaposlenju?
Znači imamo 4 kombinacije
f da
f ne
m da
m ne
po kojima agregatne funkcije zbrajaju i uzimaju maksimum? |
Ne znam na koji način si organizirao podatke i kako realiziraš GROUP BY, ali inače se za sortiranje podataka u SQL-u koristi ORDER BY. GROUP BY služi upravo za ono što si naveo - da se agregatne funkcije izračunaju na grupi istih n-torki neagregatnih kolona. Nigdje u zadatku nisam vidio eksplicitan zahtjev da rezultat mora biti ispisan nekakvim sortiranim redoslijedom, a što možeš očekivati ako se pouzdaš da GROUP BY sortira u stvarnom životu možeš vidjeti ovdje: http://laurentschneider.com/wordpress/2005/08/group-by-does-not-sort.html
http://tkyte.blogspot.com/2005/08/order-in-court.html
Želim ti uspješnu implementaciju group by
|
|
[Vrh] |
|
pecina Forumaš(ica)
Pridružen/a: 19. 01. 2005. (14:15:23) Postovi: (157)16
Spol:
Lokacija: Happily traveling through space since 1986!
|
|
[Vrh] |
|
|