Seite 1 von 1

Keine Gruppenfunktion Fehler

BeitragVerfasst: Sa 14. Okt 2017, 19:31
von Betty
Hallo,

ich habe versucht eine Aufgabe zu lösen, wobei ich aus Zwei Tabellen die Bewohner (tabelle country) und Prozent (Tabelle Population) genommen habe um die Anzahl der Gläubiger einer Religion zu bestimmen. Leider kriege ich immer wieder die Fehlermeldung Keine Gruppenfunktion... . (in den Tabellen sind so Ziemlich alle Staaten der Welt. Es ist die Mondial Datenbank).
Was genau ist den Falsch und warum kommt diese Fehlermeldung?

Code: Alles auswählen
select religion.name, country.name, round(sum(population*percentage)/100) anzahl
from MONDIAL.religion
join MONDIAL.country
on religion.country=country.code
order by 2 desc;


Danke im Vorraus.

Re: Keine Gruppenfunktion Fehler

BeitragVerfasst: Sa 14. Okt 2017, 20:31
von SQLUnion
Hallo Betty,

wenn Du Summierungen einbaust, werden Aggregationen gebildet und die müssen per SQL GROUP BY gruppiert werden.
Code: Alles auswählen
select religion.name, country.name, round(sum(population*percentage)/100) anzahl
from MONDIAL.religion
join MONDIAL.country
on religion.country=country.code
group by religion.name, country.name
order by 2 desc;

Gruß,
SQLUnion

Re: Keine Gruppenfunktion Fehler

BeitragVerfasst: Mo 16. Okt 2017, 14:11
von chuky666
Hallo zusammen :)

dazu kommt noch das dein "order by 2 desc" eher suboptimal ist. Stell dir vor es ändert sich die Reihenfolge im Select so das "country.name" nicht mehr an der zweiten stelle ist ;)

ORDER BY country.name wäre hier sauberer :)

Das aber nur als Randbemerkung :)