SQL Queries Questions


Nth highest salary

With limit clause

SELECT salary FROM Employee ORDER BY Salary DESC LIMIT n-1,1



select min(salary) from(select distinct salary from emp order by salary desc) where rownum <3;

Write SQL Query to display the current date.

SELECT GetDate(); 

Write an SQL Query to print the name of the distinct employee whose DOB is between 01/01/1960 to 31/12/1975.

SELECT DISTINCT EmpName FROM Employees WHERE DOB  BETWEEN ‘01/01/1960’ AND ‘31/12/1975’;

Write an SQL Query to find name of employee whose name Start with ‘M’

SELECT * FROM Employees WHERE EmpName like 'M%';

Write SQL Query to find duplicate rows in a database? and then write SQL query to delete them?

SELECT * FROM emp a WHERE rowid = (SELECT MAX(rowid) FROM EMP b WHERE a.empno=b.empno)

Write a query to fetch only the first name(string before space) from the FullName column of EmployeeDetails table.

SELECT MID(FullName, 0, LOCATE(' ',FullName)) FROM EmployeeDetails;

Write a query to fetch employee names and salary records. Return employee details even if the salary record is not present for the employee.

SELECT E.FullName, S.Salary  
FROM EmployeeDetails E LEFT JOIN EmployeeSalary S
ON E.EmpId = S.EmpId;

Write a SQL query to fetch only odd rows from table.

SELECT * FROM table
WHERE Column_ID % 2 = 1

 Write a SQL query to fetch only even rows from table.

SELECT * FROM table
WHERE Column_id % 2 = 0

Write a SQL query to fetch common records between two tables.

SELECT * FROM EmployeeSalary
INTERSECT
SELECT * FROM ManagerSalary

Delete duplicate data from table only first data remains constant.

DELETE M1 
From managers M1, managers M2 
Where M2.Name = M1.Name AND M1.Id>M2.Id; 

Write An SQL Query To Fetch Unique Values Of DEPARTMENT From Worker Table.

Select distinct DEPARTMENT from Worker;

Write An SQL Query To Print The First Three Characters Of  FIRST_NAME From Worker Table.

Select substring(FIRST_NAME,1,3) from Worker;

Write An SQL Query To Find The Position Of The Alphabet (‘A’) In The First Name Column ‘Amitabh’ From Worker Table.

Select INSTR(FIRST_NAME, BINARY'a') from Worker where FIRST_NAME = 'Amitabh';

Write An SQL Query To Print The FIRST_NAME From Worker Table After Removing White Spaces From The Right Side.

Select RTRIM(FIRST_NAME) from Worker;

Write An SQL Query To Print The FIRST_NAME From Worker Table After Replacing ‘A’ With ‘A’.

Select REPLACE(FIRST_NAME,'a','A') from Worker;

Write An SQL Query To Print Details For Workers With The First Name As “Vipul” And “Satish” From Worker Table.

Select * from Worker where FIRST_NAME in ('Vipul','Satish');

Write An SQL Query To Print Details Of Workers With DEPARTMENT Name As “Admin”.

Select * from Worker where DEPARTMENT like 'Admin%';

Write An SQL Query To Print Details Of The Workers Whose FIRST_NAME Contains ‘A’.

Select * from Worker where FIRST_NAME like '%a%';

 Write An SQL Query To Print Details Of The Workers Whose FIRST_NAME Ends With ‘A’.

Select * from Worker where FIRST_NAME like '%a';

Write An SQL Query To Print Details Of The Workers Whose FIRST_NAME Ends With ‘H’ And Contains Six Alphabets.

Select * from Worker where FIRST_NAME like '_____h';

Write An SQL Query To Print Details Of The Workers Whose SALARY Lies Between 100000 And 500000.

Select * from Worker where SALARY between 100000 and 500000;

Write An SQL Query To Fetch The Count Of Employees Working In The Department ‘Admin’.

SELECT COUNT(*) FROM worker WHERE DEPARTMENT = 'Admin';

Write An SQL Query To Print Details Of The Workers Who Have Joined In Feb’2014.

Select * from Worker where year(JOINING_DATE) = 2014 and month(JOINING_DATE) = 2;

Write An SQL Query To Fetch Worker Names With Salaries >= 50000 And <= 100000.

SELECT FIRST_NAME, LAST_NAME, Salary
FROM worker  
WHERE Salary BETWEEN 50000 AND 100000;

Write An SQL Query To Show The Second Highest Salary From A Table.

Select max(Salary) from Worker 
where Salary < (Select max(Salary) from Worker);

Write An SQL Query To Fetch The Departments That Have Less Than Five People In It.

SELECT DEPARTMENT, COUNT(WORKER_ID) as 'Number of Workers' FROM Worker GROUP BY DEPARTMENT HAVING COUNT(WORKER_ID) < 5;

Write An SQL Query To Print The Name Of Employees Having The Highest Salary In Each Department.

SELECT t.DEPARTMENT,t.FIRST_NAME,t.Salary from(SELECT max(Salary) as TotalSalary,DEPARTMENT from Worker group by DEPARTMENT) as TempNew 
Inner Join Worker t on TempNew.DEPARTMENT=t.DEPARTMENT 
 and TempNew.TotalSalary=t.Salary;

Write An SQL Query To Fetch Departments Along With The Total Salaries Paid For Each Of Them.

SELECT DEPARTMENT, sum(Salary) from worker group by DEPARTMENT;

Write An SQL Query To Fetch The Names Of Workers Who Earn The Highest Salary.

SELECT FIRST_NAME, SALARY from Worker WHERE SALARY=(SELECT max(SALARY) from Worker);

Get the department name and number of employees in the department
SELECT department_name AS 'Department Name', COUNT(*) AS 'No of Employees' FROM departments INNER JOIN employees ON employees.department_id = departments.department_id GROUP BY departments.department_id, department_name ORDER BY department_name;