SQL Aggregation

Aggregationsfunktionen

DB

select
sum(gehalt),
round(avg(gehalt)),
min(gehalt),
max(gehalt),
count(*),
count(bonus)
from mitarbeiter;

Gruppierung

DB

select oeid,
sum(gehalt),
round(avg(gehalt)),
min(gehalt),
max(gehalt),
count(*),
count(bonus)
from mitarbeiter
group by oeid
order by oeid

Konzept Gruppierung

DB

Aggregationsebenen

DB

select oeid,
sum(gehalt)
from mitarbeiter
group by oeid
order by oeid;

Gruppierung und Verbund

DB

select oe.bezeichnung,
sum(gehalt),
count(*)
from mitarbeiter m
join orgeinheit oe on oe.oeid=m.oeid
group by oe.bezeichnung
order by oe.bezeichnung;

Gruppierung nach Ausdrücken 1

DB

select
extract(year from eintrittsdatum) as eintrittsjahr,
sum(gehalt),
count(*)
from mitarbeiter
group by extract(year from eintrittsdatum)
order by extract(year from eintrittsdatum);

Gruppierung nach Ausdrücken 2

DB

select
case
when eintrittsdatum >= '01.01.2010' then '2010 (ab)'
when eintrittsdatum >= '01.01.2000' then '2009 (bis)'
end as eintritt,
sum(gehalt),
count(*)
from mitarbeiter
group by
case
when eintrittsdatum >= '01.01.2010' then '2010 (ab)'
when eintrittsdatum >= '01.01.2000' then '2009 (bis)'
end;

Gruppierung nach mehreren Spalten

DB

select oeid,
case
when eintrittsdatum >= '01.01.2010' then '2010 (ab)'
when eintrittsdatum >= '01.01.2000' then '2009 (bis)'
end as eintritt,
sum(gehalt),
count(*)
from mitarbeiter
group by
oeid,
case
when eintrittsdatum >= '01.01.2010' then '2010 (ab)'
when eintrittsdatum >= '01.01.2000' then '2009 (bis)'
end
order by oeid;

Änderung der Anzahl der Gruppen

DB

Gruppierung bei abhängigen Spalten

DB

Bedingungen auf Gruppenebene

DB

Bedingungen auf Detail- und Gruppenebene

DB

Last modified 2022.11.01