用于通过deptno查找员工组的第N个最大sal的SQL查询

时间:2014-06-05 05:50:16

标签: sql

select deptno,distinct(sal) from emp e1
group by deptno,sal
where 3=(select count(distinct(sal)) from emp e2 where e1.sal<=e2.sal);

我有错误**&#34;缺少表情&#34; **

2 个答案:

答案 0 :(得分:0)

Group By位于where - 条款:

之后
select deptno, distinct(sal)
from emp e1
where 3 = (select count(distinct(sal)) from emp e2 where e1.sal<=e2.sal)
group by deptno,sal;

而且我不完全确定子选择是否真的能做你想做的事,但我现在无法测试它。

答案 1 :(得分:0)

我认为你的语法无效。 正确的sql GROUP BY的语法是

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

分组应该是最后一个。 更多信息:http://www.w3schools.com/sql/sql_groupby.asp