Übernahme des Geschäfts: Sehen Sie sich die Gehaltsinformationen des zweitrangigen Mitarbeiters an Erstellen einer Datenbank Datenbank löschen, falls emps vorhanden ist; Datenbank-Emps erstellen; benutze ems; Tabelle „Mitarbeiter“ erstellen ( empId int Primärschlüssel, -- Mitarbeiternummer Geschlecht char(1) NOT NULL, -- Geschlecht des Mitarbeiters hire_date date NOT NULL -- Eintrittsdatum des Mitarbeiters ); Tabelle „Gehälter“ erstellen ( empId int Primärschlüssel, Gehalt doppelt so hoch wie Arbeitnehmergehalt); INSERT INTO Mitarbeiter WERTE (10001, 'M', '1986-06-26'); INSERT INTO Mitarbeiter WERTE (10002, 'F', '1985-11-21'); INSERT INTO Mitarbeiter WERTE (10003, 'M', '1986-08-28'); INSERT INTO Mitarbeiter WERTE (10004, 'M', '1986-12-01'); INSERT INTO Gehälter VALUES(10001,88958); INSERT INTO Gehälter VALUES(10002,72527); INSERT INTO Gehälter VALUES(10003,43311); INSERT INTO Gehälter VALUES(10004,74057); Lösung 1. (Basislösung) Suchen Sie zunächst das höchste Gehalt in der Gehaltstabelle und verwenden Sie dieses dann als Bedingung, um das zweithöchste Gehalt zu finden Die Abfrageanweisung lautet wie folgt: wählen E.empId,E.gender,E.hire_date,S.salary aus Mitarbeiter E Einstiegsgehälter S An E.empId = S.empId Wo S.Gehalt= ( select max(Gehalt)aus Gehältern Wo Gehalt (Wählen Sie max(Gehalt) aus den Gehältern aus) ); -- ---------------Abfrageergebnisse------------ -- +-------+--------+------------+--------+ | Mitarbeiter-ID | Geschlecht | Einstellungsdatum | Gehalt | +-------+--------+------------+--------+ | 10004 | M | 01.12.1986 | 74057 | +-------+--------+------------+--------+ 2. (Self-Join-Abfrage) Führen Sie zunächst eine Self-Join-Abfrage für Gehälter durch. Wenn s1<=s2 verknüpft und nach s1.salary gruppiert ist, kann der Wert von count, also die Anzahl der Personen mit einem höheren Gehalt als er, gefiltert werden, indem Personen mit count=2 ausgewählt werden müssen, um das zweithöchste Gehalt zu erhalten. Die Abfrageanweisung lautet wie folgt: wählen E.empId,E.gender,E.hire_date,S.salary aus Mitarbeiter E Einstiegsgehälter S An E.empId = S.empId wobei S.Gehalt= ( wählen s1.Gehalt aus Gehälter S1 Einstieg Gehälter S2 An s1.Gehalt <= s2.Gehalt Gruppieren nach s1.Gehalt haben Anzahl(unterschiedliche s2.Gehalt) = 2 ); -- ---------------Abfrageergebnisse------------ -- +-------+--------+------------+--------+ | Mitarbeiter-ID | Geschlecht | Einstellungsdatum | Gehalt | +-------+--------+------------+--------+ | 10004 | M | 01.12.1986 | 74057 | +-------+--------+------------+--------+ 3. (Version zur Self-Join-Abfrageoptimierung) Das Prinzip ist das gleiche wie bei 2, aber der Code ist viel einfacher. Die beiden oben genannten Methoden dienen zur Einführung der letzten Methode. In vielen Fällen haben „group by“ und „order by“ ihre Einschränkungen. Für uns Anfänger ist es dennoch sinnvoll, diese praktischere Idee zu beherrschen. wählen E.empId,E.gender,E.hire_date,S.salary aus Mitarbeiter E Einstiegsgehälter S An S.empId =E.empId Wo (Wählen Sie Anzahl(1) aus Gehältern aus, wobei Gehalt>=S.Gehalt)=2; -- ---------------Abfrageergebnisse------------ -- +-------+--------+------------+--------+ | Mitarbeiter-ID | Geschlecht | Einstellungsdatum | Gehalt | +-------+--------+------------+--------+ | 10004 | M | 01.12.1986 | 74057 | +-------+--------+------------+--------+ Dies ist nur eine kurze Zusammenfassung. Wenn Fehler vorhanden sind, weisen Sie uns bitte darauf hin. Zusammenfassen Damit ist dieser Artikel über drei Möglichkeiten zur Implementierung von Rankings in MySQL ohne Verwendung von „order by“ abgeschlossen. Weitere relevante Inhalte zu MySQL-Rankings ohne „order by“ finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung des Unterschieds zwischen Tags und Elementen in HTML
>>: Mehrere Grundsätze für die Produktdesign-Referenz auf Websites
https://docs.microsoft.com/en-us/windows/wsl/wsl-...
1. Z-Index ist in IE6 ungültig. In CSS wird die E...
Struktur Text, Kopf, HTML, Titel Text abbr, Akron...
Inhaltsverzeichnis Hintergrund Frage 1 Fehler 2 F...
Ich habe schon einmal einen solchen Artikel gesch...
Strukturierte Tabelle (nur IExplore) 1) Gruppieren...
Die Verwendung der internen Funktion instr in MyS...
Container sind ein weiteres Kernkonzept von Docke...
Angenommen, es gibt eine Tabelle: Belohnung (Belo...
Die Installation der MySQL-Software und die Daten...
In gewöhnlichen Projekten stoße ich häufig auf di...
Auch heute noch sind Taskleistensymbole ein magis...
Vorwort Ich habe vor Kurzem MySQL 5.7 installiert...
Ziehen Sie das Bild # Docker-Pull Codercom/Code-S...
Inhaltsverzeichnis Vorwort: 1. Standardwertbezoge...