Betrachten Sie die Oracle emp
Tabelle. Ich möchte die Angestellten mit dem besten Gehalt mit department = 20
und job = clerk
bekommen. Nehmen wir außerdem an, dass es keine "empno" -Spalte gibt und dass der Primärschlüssel eine Anzahl von Spalten enthält. Sie können dies mit:SQL: Aggregatfunktion und Gruppe von
select * from scott.emp
where deptno = 20 and job = 'CLERK'
and sal = (select max(sal) from scott.emp
where deptno = 20 and job = 'CLERK')
Dies funktioniert, aber ich habe den Test deptno = 20 und Job duplizieren = ‚CLERK‘, die ich vermeiden möchte. Gibt es eine elegantere Art, dies zu schreiben, vielleicht mit einem group by
? Übrigens, wenn es darauf ankommt, verwende ich Oracle.
Keine Probleme, ich habe die Antwort bearbeitet :) Es sollte ein IN sein –