Einzelnen Beitrag anzeigen
Alt 05.03.2006, 17:28   #1
RaistlinMajere
Inventar
 
Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343


Standard SQL-frage: GROUP BY vs. DISTINCT

folgende tables sind gegeben:

student(matnr, name, addr, tel, alter)
anmeldung(matnr, lvanr, note)

angenommen ich will die namen der studenten wissen, welche zumindest 3 1er hatten.

da gäbs mal diese möglichkeit:
Code:
SELECT name FROM student s, anmeldung a WHERE a.matnr=s.matnr AND note=1 GROUP BY a.matnr, name HAVING count(*)>=3;
wenn ich das richtig verstanden habe bräuchte ich das "name" in GROUP BY eigentlich nicht, in dem ich aber auch nach den namen gruppiere, sorge ich dafür, daß derselbe student nicht mehrmals ausgegeben wird.

für den fall, daß das stimmt, würde ich dassselbe aber auch über DISTINCT erreichen können, oder? also so:
Code:
SELECT DISTINCT name FROM student s, anmeldung a WHERE a.matnr=s.matnr AND note=1 GROUP BY a.matnr HAVING count(*)>=3;
stimmt das so, führen diese beiden anweisungen tatsächlich zum selben ergebnis?
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret."
Then he pulled the trigger of his BFG9000.
RaistlinMajere ist offline   Mit Zitat antworten