SQL PRACTICE: SQL SERVER - Second MAX Salary
Q6. How to find the employee with the second MAX salary using SQL?
N.B: I am using the following:
Database -> MSSQL
SQL Dialect -> T-SQL
Consider below employment table as a source data.
-- Create an employment table
create table employment(
EmpId int,
FirstName varchar(20),
LastName varchar(20),
Salary int
);
-- Insert values to the employment table
insert into employment(EmpId, FirstName, LastName, Salary)
Values
(100, 'Genet', 'Mathew', 40000),
(101, 'Mike', 'Mcarthy', 80000),
(102, 'Teddy', 'Arthur', 60000),
(103, 'Abrham', 'Zerai', 70000),
(104, 'Aman','Mike', 65000),
(105, 'Tedros','Haile', 50000),
(106, 'Abi', 'Jacob', 60000),
(107, 'Bruno', 'Yonus', 75000),
(108, 'Mathew', 'Samuel',60000),
(109, 'Rodas','Keyun', 65000),
(110, 'Mat', 'Joseph', 100000);
Select * from employment;
- The Offset clause skips a number of rows before starting to return rows from a query. It is mandatory and it has a parameter greater or equal to zero.
- The Fetch clause specifies the number of rows to return after offset clause is processed. It has a parameter that is greater or equal to one.
Explanation: The above query will first return the entire table sorted with the max salary as the first row. To eliminate the first row, we will use offset. The offset clause will skip one row. Then, the fetch clause will return the first row after offset clause has been processed. Basically, the query will return the second max salary from the sorted table.
Comments
Post a Comment