SQL-Implementierung von LeetCode (184. Das höchste Gehalt der Abteilung)

SQL-Implementierung von LeetCode (184. Das höchste Gehalt der Abteilung)

[LeetCode] 184. Abteilung Höchstes Gehalt

Die Mitarbeitertabelle enthält alle Mitarbeiter. Jeder Mitarbeiter hat eine ID, ein Gehalt und es gibt auch eine Spalte für die Abteilungs-ID.

+----+-------+--------+-----------+
| ID | Name | Gehalt | Abteilungs-ID |
+----+-------+--------+-----------+
| 1 | Thomas | 70000 | 1 |
| 2 | Heinrich | 80000 | 2 |
| 3 | Sam | 60000 | 2 |
| 4 | Max | 90000 | 1 |
+----+-------+--------+-----------+

Die Abteilungstabelle enthält alle Abteilungen des Unternehmens.

+----+----------+
| Ich würde | Name |
+----+----------+
| 1 | ES |
| 2 | Verkauf |
+----+----------+

Schreiben Sie eine SQL-Abfrage, um die Mitarbeiter mit dem höchsten Gehalt in jeder Abteilung zu finden. In den obigen Tabellen hat Max das höchste Gehalt in der IT-Abteilung und Henry das höchste Gehalt in der Vertriebsabteilung.

+------------+----------+--------+
| Abteilung | Mitarbeiter | Gehalt |
+------------+----------+--------+
| IT | Max | 90000 |
| Verkauf | Henry | 80000 |
+------------+----------+--------+

Diese Frage gibt uns zwei Tabellen, Mitarbeiter und Abteilung, und fordert uns auf, die Person mit dem höchsten Gehalt in der Abteilung zu finden. Tatsächlich ist diese Frage eine Kombination aus Zweithöchstes Gehalt und Zwei Tabellen kombinieren . Wir müssen die beiden Tabellen kombinieren und das höchste Gehalt finden. Also schneiden wir zuerst die beiden Tabellen, markieren dann die erforderlichen Spalten in der Ergebnistabelle und finden dann das höchste Gehalt. Wir verwenden dazu das Schlüsselwort Max. Siehe den Code unten:

Lösung 1:

SELECT d.Name AS Abteilung, e1.Name AS Mitarbeiter, e1.Gehalt FROM Mitarbeiter e1
JOIN Abteilung d ON e1.DepartmentId = d.Id WHERE Gehalt IN 
(SELECT MAX(Gehalt) FROM Mitarbeiter e2 WHERE e1.DepartmentId = e2.DepartmentId);

Wir können auch Where verwenden, um die beiden Tabellen ohne das Schlüsselwort Join zu verbinden und dann das höchste Gehalt auf die gleiche Weise wie oben zu ermitteln:

Lösung 2:

SELECT d.Name AS Abteilung, e.Name AS Mitarbeiter, e.Gehalt FROM Mitarbeiter e, Abteilung d
WO e.DepartmentId = d.Id UND e.Gehalt = (SELECT MAX(Gehalt) VON Mitarbeiter e2 WO e2.DepartmentId = d.Id);

Die folgende Methode verwendet nicht das Schlüsselwort Max, sondern das Symbol >=, das denselben Effekt wie das Schlüsselwort Max erzielt. Siehe den Code unten:

Lösung 3:

SELECT d.Name AS Abteilung, e.Name AS Mitarbeiter, e.Gehalt FROM Mitarbeiter e, Abteilung d
WO e.DepartmentId = d.Id UND e.Salary >= ALLE (WÄHLEN Sie Gehalt AUS Mitarbeiter e2, WO e2.DepartmentId = d.Id);

Ähnliche Themen:

Zweithöchstes Gehalt

Zwei Tabellen kombinieren

Dies ist das Ende dieses Artikels über die SQL-Implementierung von LeetCode (184. Das höchste Gehalt in der Abteilung). Weitere relevante Inhalte zur SQL-Implementierung des höchsten Gehalts in der Abteilung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • SQL-Implementierung von LeetCode (196. Doppelte Postfächer löschen)
  • SQL-Implementierung LeetCode (185. Top drei der höchsten Gehälter in der Abteilung)
  • SQL-Implementierung von LeetCode (183. Kunden, die noch nie eine Bestellung aufgegeben haben)
  • SQL-Implementierung von LeetCode (182. Doppelte Postfächer)
  • SQL-Implementierung von LeetCode (181. Angestellte verdienen mehr als Manager)
  • SQL implementiert LeetCode (180. Fortlaufende Zahlen)
  • C++-Implementierung von LeetCode (179. Maximale Anzahl an Kombinationen)
  • SQL-Implementierung von LeetCode (197. Steigende Temperatur)

<<:  So passen Sie die Textgröße im Webdesign an: Kleiner Text, großes Erlebnis

>>:  Methode zur Implementierung von Website-Hintergrundmusik

Artikel empfehlen

Vue3 setup() - Erweiterte Verwendungsbeispiele - ausführliche Erklärung

Inhaltsverzeichnis 1. Unterschiede zwischen Optio...

JS generiert eindeutige ID-Methoden: UUID und NanoID

Inhaltsverzeichnis 1. Warum NanoID UUID ersetzt 2...

MySQL ruft die aktuelle Datums- und Uhrzeitfunktion ab

Holen Sie sich das aktuelle Datum + die aktuelle ...

Eine detaillierte Einführung in den netstat-Befehl in Linux

Inhaltsverzeichnis 1. Einleitung 2. Beschreibung ...

202 kostenlose, hochwertige XHTML-Vorlagen (2)

Nach dem vorherigen Artikel 202 kostenlose hochwe...

Installation von CUDA10.0 und Probleme in Ubuntu

Die Entsprechung zwischen der Tensorflow-Version ...

Teilen Sie JS vier lustige Hacker-Hintergrundeffektcodes

Inhaltsverzeichnis Beispiel 1 Beispiel 2 Beispiel...

Detaillierte Erklärung des JavaScript ES6-Moduls

Inhaltsverzeichnis 0. Was ist ein Modul 1.Modul l...

Benutzererfahrung bei der Neugestaltung der Portal-Website

<br />Vom Start der neuen Homepage von NetEa...

Die HTML-Tag-ID kann eine Variable sein

<table id=" <%=var1%>">, der...