考虑 Oracleemp
表。我想用 和 得到薪水最高的department = 20
员工job = clerk
。还假设没有“empno”列,并且主键涉及许多列。你可以这样做:
select * from scott.emp
where deptno = 20 and job = 'CLERK'
and sal = (select max(sal) from scott.emp
where deptno = 20 and job = 'CLERK')
这可行,但我必须复制测试 deptno = 20 和 job = 'CLERK',这是我想避免的。有没有更优雅的方式来写这个,也许使用group by
? 顺便说一句,如果这很重要,我正在使用 Oracle。