Skip to main content

SQL Interview Questions on Subqueries

SUB Queries:

1. List the employees working in research department
2. List employees who are located in New York and Chicago
3. Display the department name in which ANALYSTS are working
4. Display employees who are reporting to JONES
5. Display all the employees who are reporting to Jones Manager
6. Display all the managers in SALES and ACCOUNTING department
7. Display all the employee names in Research and Sales Department who are having at least 1 person reporting to them
8. Display all employees who do not have any reportees
9. List employees who are having at least 2 reporting
10. List the department names which are having more than 5 employees
11. List department name having at-least 3 salesman
12. List employees from research and accounting having at-least 2 reporting
13. Display second max salary
14. Display 4th max salary
15. Display 5th max salary  -- Answer for nth Max Salary

Co-Related Subqueries:

16. Write a query to get 4th max salary from EMP table
17. Write a query to get 2nd & 6th max salary from EMP table
18. Write a query to get first 3 salaries from the EMP table
19. Write a query to get 2nd least salary from the EMP table
20. Write a query to get least 3 salaries from the EMP table
21. List all the employees whose salaries are greater than their respective departmental average salary.


Comments

niranjana said…
uses of index and types?
Madhurya said…
Thank You so much sir.......
Divya said…
Sir can u please provide table data for the above queries
chandu said…
Write a query to get 2nd & 6th max salary from EMP table


select salary from emp e where 2=(select count(distinct salary) from emp where salary>e.salary) or 5=(select count(distinct salary) from emp where salary>e.salary)
chandu said…
Write a query to get 4th max salary from EMP table
select salary from emp e where 3=(select count(distinct salary) from emp where salary>e.salary)
daulat said…
see get 4th higest salary

select max(salary)from emp

orderd by desc limit 2 offset 3
Anonymous said…
4th highest salary
Select sal from
(Select salary, rownum VAR FROM
(Select distinct(salary) from employees ORDER BY salary desc))
WHERE VAR=4;
Anonymous said…
WHERE are the answers??
For the other subquries??
thulasi said…
Hi Mithun Sir,
I need answr for the below question.

Display the names of the Employees who earn highest salary respective to their departments.

I tried the following query ,its nt giving the exact result
Select Ename,Sal,Deptno From Emp
Where Sal IN (Select MAX(Sal) From Emp Group By Deptno)
Order By Deptno

Give me alternate answr
Unknown said…
HI SIR, I TRIED THE SAME AS THULASI SAID. BUT IT IS GIVING 24 ROWS ANSWER WHEREAS ANSWER IS 12 ROWS. SOLVE THIS PLEASE
Unknown said…
This comment has been removed by the author.
Unknown said…
11. List department name having at-least 3 salesman ----> we have to get dept name from dept table
>>>
select dname from dept where deptno in (select deptno from emp where job='SALESMAN' group by job having count(*) >=3));

and job='SALESMAN'));
Unknown said…
Hello Sir, I have Question,

List the Deparment name, First Highest Salary, Second Highest Salary, Third Highest Salary from each department name
Unknown said…
How to solve the 1st question using sub-query??
Adarshi Bhatt said…
This comment has been removed by the author.
Adarshi Bhatt said…
select empno,ename from emp where deptno=(select deptno from dept where dname='RESEARCH');

Unknown said…
This comment has been removed by the author.
Unknown said…
select *
from emp x
where x.sal=(select max (sal)
from emp
where x.deptno=deptno)
/
Unknown said…
Q-11 answer
select dname from dept where deptno in(select deptno from emp where job='SALESMAN'
group by deptno having count(*)>=3);
Unknown said…
Q-15 answer
select * from emp X where 5=(select count(distinct Y.sal) from emp Y where Y.sal>=X.sal);
Unknown said…
Empname sal deptid
Praveen 1000 30
Mohan 500 30
Ram 500 10

Need output like this

Empname sal deptid
Praveen 1000 30
Ram 500 10


With out using ranking functions
With using sub query I need answer.
kenwood said…
Most commonly the Salesforce data is operated by multiple users, such as Sales Team, Marketing Team, etc. Public Reports are an excellent example of such situations where users have access to update or delete records. It is a process that opens the door for the possibility of malicious activities. Salesforce training in Hyderabad

Popular posts from this blog

Basics of RDBMS

Data Small set of information becomes data, this set of information helps make decision. Data is always some useful information. Database Place where you store the data. Database represents some aspect of the real world called "miniworld". A database is designed, built and populated with data for a specific purpose. It has intended group of users and some preconceived applications in which these users are interested. In other words, a database has some source from which data is derived, some degree of interaction with events in the real world and an audience that is actively interested in the contents of the database. Database can also be defined as collection of one or more tables. Ex: Mobile, human brain etc DBMS (Database Management System ) Is a program that stores retrieves and modifies data in the database on request. Study of different techniques of design, development and maintenance of the database Types of DBMS These types are based upon their m

Answers for SQL Functions

1. SQL> SELECT empno, ename FROM emp WHERE Length(ename) = 4; 2. SQL> SELECT empno, ename, job FROM emp where Length(job)=7; 3. SQL> SELECT Length('qspiders') - Length(replace('qspiders','s','')) FROM dual; 4. SQL>  SELECT empno, ename, job FROM emp WHERE Instr(job,'MAN') >0; 5. SQL> SELECT empno, ename, job FROM emp WHERE Instr(job, 'MAN') =1; 6. SQL> SELECT empno, ename, job FROM emp WHERE (Length(ename) - Length(Replace(ename, 'L',''))) = 1; 7. SQL> SELECT * FROM dept WHERE Instr(dname,'O') > 0; 8. SQL> SELECT Concat(ename,' working as a ') || Concat(job, ' earns ') || Concat(sal, '  in ') || Conc at('dept ',deptno) AS text from emp; OR SQL> SELECT Concat(Concat(Concat(Concat(Concat(Concat(Concat(ename,' working as a '), job),' earns '), sal),'  in '),'dept '), deptno) AS text FROM emp; 9. SQL