Article View: be.comp.programming
Article #13822sql: group by
From: Bart Vandewoestyne
Date: Sun, 27 May 2001 15:51
Date: Sun, 27 May 2001 15:51
91 lines
4003 bytes
4003 bytes
Stel volgende tabellen:
PROJECT:
PNAME, ___PNUMBER___, PLOCATION, DNUM
WORKS_ON:
___ESSN___, ___PNO___, HOURS
De ___onderstreepte___ attributen zijn/vormen de sleutel.
SQL> select * from project;
PNAME PNUMBER PLOCATION DNUM
--------------- ---------- --------------- ----------
ProductX 1 Bellaire 5
ProductY 2 Sugarland 5
ProductZ 3 Houston 5
Computerization 10 Stafford 4
Reorganization 20 Houston 1
Newbenefits 30 Stafford 4
SQL> select * from works_on;
ESSN PNO HOURS
--------- ---------- ----------
123456789 1 32.5
123456789 2 7.5
666884444 3 40
453453453 1 20
453453453 2 20
333445555 2 10
333445555 3 10
333445555 10 10
333445555 20 10
999887777 30 30
999887777 10 10
ESSN PNO HOURS
--------- ---------- ----------
987987987 10 35
987987987 30 5
987654321 30 20
987654321 20 15
888665555 20 0
Ik wil nu volgende query doen:
For each project, retrieve the project number, the project name, and
the number of employees who work on that project.
Die querie ziet er als volgt uit:
SELECT PNUMBER, PNAME, COUNT(*)
FROM PROJECT, WORKS_ON
WHERE PNUMBER=PNO
GROUP BY PNUMBER, PNAME
Nu is mijn vraag: waarom moet die PNAME ook nog in de GROUP BY
clause? Als ik ze per project wil, dan zou ik redeneren dat groeperen
op projectnummer (PNUMBER) voldoende is? Ik snap niet waarom die
PNAME er dan ook nog bij moet.
Volgende zaak lukt bv. niet:
SQL> select pnumber, pname, count(*)
2 from project, works_on
3 where pnumber=pno
4 group by pnumber;
select pnumber, pname, count(*)
*
ERROR at line 1:
ORA-00979: not a GROUP BY expression
Ik heb een vaag vermoeden dat het te maken heeft met het feit dat
PNAME geen sleutelattribuut is, maar ik geraak er precies niet uit...
Kan iemand hier een verhelderende uitleg over geven?
Greetzzz,
mc303
PS: Dit komt uit het boek 'Fundamentals of Database Systems, Third
Edition - Elsmari, Navathe' voor diegenen die het zouden willen weten
;-)
--
Ing. Bart Vandewoestyne Bart.Vandewoestyne@pandora.be
Hugo Verrieststraat 48 GSM: +32 (0)478 397 697
B-8550 Zwevegem http://users.pandora.be/vandewoestyne
----------------------------------------------------------------------
"Any fool can know, the point is to understand." - Albert Einstein
Technical Details
Message-ID:
<3B11229E.9335CC19@pandora.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-03!supernews.com!cyclone-sf.pbi.net!63.208.208.143!feed2.onemain.com!feed1.onemain.com!newsfeeds.belnet.be!naxos.belnet.be!news.belnet.be!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,91d94af356f134d1,start X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2001-05-27 08:54:02 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-03!supernews.com!cyclone-sf.pbi.net!63.208.208.143!feed2.onemain.com!feed1.onemain.com!newsfeeds.belnet.be!naxos.belnet.be!news.belnet.be!not-for-mail From: Bart Vandewoestyne <Bart.Vandewoestyne@pandora.be> Newsgroups: be.comp.programming Subject: sql: group by Date: Sun, 27 May 2001 17:51:58 +0200 Organization: MyHome Lines: 91 Message-ID: <3B11229E.9335CC19@pandora.be> NNTP-Posting-Host: seven.kulnet.kuleuven.ac.be Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: naxos.belnet.be 990978748 29310 134.58.127.12 (27 May 2001 15:52:28 GMT) X-Complaints-To: abuse@belnet.be NNTP-Posting-Date: Sun, 27 May 2001 15:52:28 +0000 (UTC) X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.4.5 i686) X-Accept-Language: nl-BE, nl, en, de Cache-Post-Path: seven.kulnet.kuleuven.ac.be!unknown@kn-10-0-53-046.kotnet.kuleuven.ac.be X-Cache: nntpcache 2.4.0b5 (see http://www.nntpcache.org/)