SQL SELECT beznadej

Honza Pazdziora adelton na informatics.muni.cz
Čtvrtek Červenec 22 18:50:32 CEST 1999


> pouzivam PostgreSQL a stojim pred jednim SQL problemem. Myslim si
> vsak, ze nekdo to musi mit obstoje vyreseno. Proto pisi.
> Mam 2 tabulky:
> zakaznici
> odbery
> 
> Tabulka zakaznici obsahuje udaje o zakaznicich.
> Tabulka odbery obsahuje informace o kazdem nakupu.
> 
> Potrebuji udelat select ze 2 tabulek (to umim), ale tak,
> aby mi to vzdy vyhodilo (to neumim):
> zakaznik.jmeno | count(odbery.jmeno_zakaznika) |
> ---------------+-------------------------------+
> josef          |      5                        |
> pepa           |      10                       |
> ---------------+-------------------------------+
> 
> Proste chci vedet, kolik kazdy zakaznik udelal odberu - neco
> jako count();
> 
> SELECT zakaznik.jmeno, count(odbery.*)
> WHERE zakaznik.jmeno=odbery.jmeno_zakaznika;

Potrebujete klauzuli GROUP BY. Nemam tu po ruce PostgreSQL, abych to
otestoval, ale v Oraclu bych to napsal

	SELECT zakaznik.jmeno, count(*)
	FROM zakaznik, odbery
	WHERE zakaznik.jmeno = odbery.jmeno_zakaznika
	GROUP BY zakaznik.jmeno

Tohle seskupi nalezene zaznamy podle zakaznik.jmeno a count(*) je pak
spocitano vzdy v ramci te skupiny.

------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
 make vmlinux.exe			-- SGI Visual Workstation Howto
Any spam sent to my email will be rewarded by complaint to your ISP abuse
  team and abuse teams of servers that relayed that message. It works.


Další informace o konferenci Databases