我有一個表名'emp'。列是: uid,emp_name,emp_dept,emp_sal。發現表部門明智的第二大
現在我想找到每個部門員工的第二大薪水。 請給我建議查詢。 我已經使用這個查詢,但它並沒有顯示我想要的結果::
select max(emp_sal) from emp where emp_sal<(select max(emp_sal) from emp)
group by emp_dept
我有一個表名'emp'。列是: uid,emp_name,emp_dept,emp_sal。發現表部門明智的第二大
現在我想找到每個部門員工的第二大薪水。 請給我建議查詢。 我已經使用這個查詢,但它並沒有顯示我想要的結果::
select max(emp_sal) from emp where emp_sal<(select max(emp_sal) from emp)
group by emp_dept
既然你使用MySQL,你可以利用offset
參數的限制子句。
SELECT e.emp_dept,
(SELECT p.emp_sal
FROM emp p
WHERE p.emp_dept = e.emp_dept
ORDER BY p.emp_sal DESC
LIMIT 1,1) secondHighestSal
FROM emp e
GROUP BY e.emp_dept
SELECT SAL FROM EMP WHERE SAL IN(SELECT MAX(SAL)FROM EMP WHERE SAL <>(SELECT MAX(SAL) FROM EMP))
通過使用波紋管的查詢,我們將使用LIMIT
SELECT a . * FROM emp AS a
WHERE 2 = (SELECT count(a.uid)
FROM emp AS b
WHERE a.emp_sal <= b.emp_sal AND a.emp_dept = b.emp_dept
GROUP BY a.emp_dept)
感謝讓與了所有部門的第二個最高值,它的工作。偉大的查詢 – 2011-02-04 05:21:24