Write a query to get 2nd maximum salary in an employee table ?
Answers were Sorted based on User's Feedback
Answer / niladri saha(oracle apps consu
SELECT EMP_NAME EmployeeName, SAL Salary
FROM EMP
WHERE SAL =
( SELECT SAL
FROM
(
SELECT
DISTINCT SAL
FROM EMP
ORDER BY SAL DESC
)
WHERE ROWNUM=2
);
This Query will list all the employees, having second
highest salary.
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / rajesh
Guess this works...
select max(sal)
from (select * from emp
where sal not in (select max(sal) from emp))
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / paddu
Mr. Ebnezer this is not a comedy site, to do the comedy.You
know the answer, post it.otherwise leave it.
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / mark berlin
-- Solution #3
select distinct salary from (
select salary,
RANK() OVER (order by salary desc NUlls last) as RRANK
FROM employees
)
Where RRANK = 2;
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / sagar
Select Min(Salary) from Curtest where Salary
in (select Top 2 Salary from Curtest order by salary desc)
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / prasanna
select * from emp where 2(select count(distinct sal) from
emp e where sal>=e.sal);
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / karthik ramasamy
Select max(salary) from salarymaster where salary <(select
max(salary) from salarymaster)
OR
SELECT MAX(SALARY) FROM SALARYMASTER WHERE SALARY NOT IN
(SELECT MAX(SALARY) FROM SALARYMASTER)
OR
Select max(salary) from salarymaster where salary<(Select
max(salary) from salarymaster)
| Is This Answer Correct ? | 0 Yes | 0 No |
The following solution is for getting 6th highest salary
from Employee table ,
SELECT TOP 1 salary
FROM (
SELECT DISTINCT TOP 6 salary
FROM employee
ORDER BY salary DESC) a
ORDER BY salary
or
SELECT MIN(Sal) FROM TableName
WHERE Sal IN
(SELECT TOP 6 Sal FROM TableName ORDER BY Sal DESC)
Reference:
http://blog.sqlauthority.com/2008/04/02/sql-server-find-nth-highest-salary-of-employee-query-to-retrieve-the-nth-maximum-value/
| Is This Answer Correct ? | 0 Yes | 0 No |
ex:
Raj 200
kamal 300
hajka 500
Suresh 200
so 1st max salary is 500,2nd is 300,3rd is 200
we need 2nd maximum only(i.e 300)
Query is below
SELECT MIN(SALARY) FROM EMPLOYEE WHERE SALARY IN (SELECT
DISTINCT TOP 2 SALARY FROM EMPLOYEE ORDER BY SALARY DESC)
I've checked this query.
it will give 2nd maximum value.
if it is 3rd max salary then use TOP 3 instead of TOP 2
if u need detail explanation:
1)
Qry: SELECT DISTINCT TOP 2 SALARY FROM EMPLOYEE ORDER BY
SALARY DESC
Output:500
300
2)
SELECT MIN(SALARY) FROM EMPLOYEE WHERE SALARY IN (SELECT
DISTINCT TOP 2 SALARY FROM EMPLOYEE ORDER BY SALARY DESC)
ans: it gets minimum salary from subquery( from above 1st ans)
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / reddy
select distinct (a.sal) from emp a where &n = (select count
(distinct(b.sal) from emp bmwhere a.sal<=b.sal)
| Is This Answer Correct ? | 0 Yes | 0 No |
How do I count duplicates in sql?
what is mean by forward declaration and where we'll use it.
What are the benefits of using PL/SQL packages?
what is the cursor and use of cursor in pl/sql ?
what are the different functions in sorting an array? : Sql dba
what is meant by urlencode and urldocode? : Sql dba
What is the largest value that can be stored in a byte data field?
Difference between IN and EXISTS
how to use like conditions? : Sql dba
What is serial sql?
Explain what is table in a database?
What is Temp Table and type of temp table?
Oracle (3259)
SQL Server (4518)
MS Access (429)
MySQL (1402)
Postgre (483)
Sybase (267)
DB Architecture (141)
DB Administration (291)
DB Development (113)
SQL PLSQL (3330)
MongoDB (502)
IBM Informix (50)
Neo4j (82)
InfluxDB (0)
Apache CouchDB (44)
Firebird (5)
Database Management (1411)
Databases AllOther (288)