Prozentualen Anteil

Oesmann

Neuer Benutzer
Beiträge
1
Hallo zusammen,
ich habe ein Problem mit einer SQL-Abfrage. Seit Tagen versuche eine Lösung zu finden, leider ohne Erfolg.
Ich habe folgende Abfrage:

SELECT DISTINCT [Werbemittel],
COUNT(DISTINCT Kunden) as KndAnzWm „(Anzahl der Kunden)“
Sum(BEZUG) as SumWg, „(Anzahl der Werbemittel)“
[VKL] as Mitarbeiter „(Mitarbeiter)“
FROM [dwh].[C_WERBEMITTEL]
Group by Werbemittel, VKL
Order by Werbemittel

Ich benötige die Anzahl der Kunden pro Werbemittel für jeden Mitarbeiter und die Anzahl der Werbemittel pro Werbemittel für jeden Mitarbeiter.
Beispiel:
Werbemittel Mitarbeiter AnzahlWM AnzahlKd
01001 1 3 2
01001 2 5 2
01002 1 3 1
Das klappt auch alles wunderbar.
Jetzt benötige ich aber auch den prozentualen Anteil des Mitarbeiters.
Mitarbeiter 1 hat bei einen Anteil von X% am Werbemittel 01001.

Geht das überhaupt in einer Abfrage?
Vielen Dank für eure Hilfe.
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.042
Jetzt benötige ich aber auch den prozentualen Anteil des Mitarbeiters.
Mitarbeiter 1 hat bei einen Anteil von X% am Werbemittel 01001.

Geht das überhaupt in einer Abfrage?
Vielen Dank für eure Hilfe.


Meinst sowas:

Code:
test=*> select * from foo;
 mitarbeiter | anzahl
-------------+--------
 hans  |  10
 otto  |  20
 willi  |  50
 anna  |  130
(4 rows)

test=*> select *, 100 * (anzahl / (sum(anzahl) over ())::numeric)::numeric(6,3) as anteil from foo ;
 mitarbeiter | anzahl | anteil
-------------+--------+--------
 hans  |  10 |  4.800
 otto  |  20 |  9.500
 willi  |  50 | 23.800
 anna  |  130 | 61.900
(4 rows)

Ist jetzt PostgreSQL, sollte mit M$SQL aber auch in etwa so gehen.
 
Werbung:

gurbelunder

Datenbank-Guru
Beiträge
136
Eigentlich reicht hier die normale Dreisatzanwendung zum Ausrechnen eines Prozentsatzes, wie man es in der Schule gelernt hat.
 
Oben