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

Achten Sie bei der Webseitenerstellung auf die Verwendung von HTML-Tags

Dieser Artikel stellt einige Aspekte von HTML-Tag...

Acht Möglichkeiten zur Implementierung von Kommunikation in Vue

Inhaltsverzeichnis 1. Komponentenkommunikation 1....

Eine kurze Analyse von MySQL-Sperren und -Transaktionen

MySQL selbst wurde auf Basis des Dateisystems ent...

So erhalten Sie die Breite und Höhe des Bildes im WeChat-Applet

Herkunft Zurzeit arbeite ich an Anforderung A, in...

Beispielcode für nahtloses Scrollen mit Flex-Layout

In diesem Artikel wird hauptsächlich der Beispiel...

So überwachen und löschen Sie abgelaufene Sitzungen in Tomcat

Vorwort Ich habe zufällig entdeckt, dass die halb...

HTML-Grundlagen: HTML-Inhaltsdetails

Beginnen wir mit dem Körper: Wenn Sie eine Webseit...

Vue-Electron-Problemlösung bei Verwendung des seriellen Ports

Der Fehler lautet wie folgt: Nicht abgefangener T...

Zwei praktische Möglichkeiten zum Aktivieren des Proxys in React

Zwei Möglichkeiten zum Aktivieren des Proxy React...

Eine kurze Diskussion über den Linux-Signalmechanismus

Inhaltsverzeichnis 1. Signalliste 1.1. Echtzeitsi...

Reines HTML und CSS, um den JD-Karusselleffekt zu erzielen

Das JD-Karussell wurde mit reinem HTML und CSS im...

Vor- und Nachteile von React Hooks

Inhaltsverzeichnis Vorwort Vorteil: Mangel: 1. Re...

JS erzielt Fünf-Sterne-Lobeffekt

Verwenden Sie JS, um objektorientierte Methoden z...

So gehen Sie mit verstümmelten Zeichen in der MySQL-Datenbank um

In MySQL können in der Datenbank fehlerhafte Zeic...