Re: Správná formulace SQL dotazu v PostgreSQL
Jan Mura
jan.mura na volny.cz
Středa Březen 26 16:00:57 CET 2008
Dobrý den,
ten vnořený select je asi dost složitý a zbytečný.
Určitě by to chtělo groupovat
Myslím, že něco takového by fungovalo v Ora:
select count(kniha.id), kniha.autor
from kniha
group by kniha.id;
Nebo jak máte ty názvy.
Případně tam přidat i nějaký having víc než nula pro počet knih.
Snad by to mělo jít v Pg také.
Jan Mura
----- Original Message -----
From: "Jiří Volf" <konference na volfovi.net>
To: <linux na linux.cz>
Sent: Wednesday, March 26, 2008 2:24 PM
Subject: OT: Správná formulace SQL dotazu v PostgreSQL
Dobrý den,
dejme tomu, že mám databázi:
KNIHA(ID,NAZEV,AUTOR_ID) , AUTOR(ID,NAZEV)
požadavek je vypsat jméno a počet napsaných knih všech
autorů, kteří napsali alespoň jednu z nich.
Nejdříve jsem sestrojil něco jako:
select autor.nazev, (select count(kniha.id) from kniha where
kniha.autor_id=autor.id) as pocet_knih where pocet_knih>0;
jenomže to mi v postgre (7.4) nepracuje, píše to neznámý
sloupec "pocet_knih". Je v tomto nějaký problém?
Je to ve vyšších verzích OK? Nebo mám jen špatně
zafixováno, že by to mělo fungovat?
Tato formulace již funguje:
select autor.nazev, (select count(kniha.id) from kniha where
kniha.autor_id=autor.id) having (select count(kniha.id) from kniha where
kniha.autor_id=autor.id)>0;
Neprovádí se ale zde tento vnořený SQL dotaz dvakrát?
Díky.
JV
_______________________________________________
Linux mailing list
Linux na linux.cz
http://www.linux.cz/mailman/listinfo/linux
Další informace o konferenci Linux