Sql Abfrage: Mitarbeiter mit höchster Zulage?

ichlernsql

Neuer Benutzer
Beiträge
1
Hi zusammen, ich brauche für eine kleine SQL abfrage eure hilfe.

gefordert wird die Mitarbeiter herauszufinden, die die höchste zulage erhalten im Vergleich zu den Mitarbeitern mit gleichem Gehalt

A: 1000€ Gehalt 50€ Zulage

B: 1000€ Gehalt 20€ Zulage

C: 500€ Gehalt 70€ Zulage

D: 500€ Gehalt 120€ Zulage

jetzt brauch ich eine Abfrage die mir A und D ausgibt.

danke für eure Hilfe :)

(Das sind nur Beispieledaten. In wahrheit ist die Datenbank viel größer.
Ich will einen Befehl mit dem man sozusagen für jedes Gehalt den Mitarbeiter bekommt der für das jeweilige Gehalt die höchste zulage erhält)
 
Werbung:
Deine Wunschantwort mit Deinen Daten:

Code:
postgres=# select * from ichlernsql ;
 ma | gehalt | zulage 
----+--------+--------
 a  |   1000 |     50
 b  |   1000 |     20
 c  |    500 |     70
 d  |    500 |    120
(4 rows)

postgres=# with tmp as (select ma, gehalt, zulage, rank() over(partition by gehalt order by zulage desc) from ichlernsql) select ma, gehalt, zulage from tmp where rank = 1 order by ma ;
 ma | gehalt | zulage 
----+--------+--------
 a  |   1000 |     50
 d  |    500 |    120
(2 rows)

postgres=#
 
Sollte es mehrere Personen mit der gleichen höchsten Zulage geben...
Code:
SELECT person, geh, zul
FROM gehalt
WHERE (geh, zul) IN (
  SELECT geh, MAX(zul)
  FROM gehalt
  GROUP BY geh
)
 
Werbung:
Zurück
Oben