Wie könnte ich N Ergebnisse für mehrere Gruppen in erhalten? eine Oracle-Abfrage.
Zum Beispiel in der folgenden Tabelle:
%Vor%Es gibt viel mehr Reihen mit mehr Besetzungen. Ich hätte gern drei Angestellte (sagen wir) von jedem Beruf.
Gibt es eine Möglichkeit, dies zu tun, ohne eine Unterabfrage zu verwenden?
Dies erzeugt, was Sie wollen, und es verwendet keine herstellerspezifischen SQL-Funktionen wie TOP N oder RANK ().
%Vor%In diesem Beispiel erhalten die drei Mitarbeiter die niedrigsten emp_id-Werte pro Beruf. Sie können das Attribut, das im Ungleichheitsvergleich verwendet wird, ändern, um es den Top-Mitarbeitern mit Namen oder was auch immer zu geben.
hat dies in SQL Server getestet (und verwendet Unterabfrage)
%Vor%machen Sie einfach eine ORDER by in der Unterabfrage, um Ihre Anforderungen zu erfüllen
Ich bin mir nicht sicher, ob das sehr effizient ist, aber vielleicht ein Startplatz?
%Vor%Dies sollte Ihnen Zeilen geben, die drei verschiedene Mitarbeiter enthalten, alle in demselben Beruf. Leider gibt es Ihnen ALLE Kombinationen davon.
Kann jemand das bitte ablehnen?
Tags und Links sql oracle greatest-n-per-group