Complex queries for interviews:


Complex SQL Queries Examples ( 90% ASKED IN Interviews ) 

Answer:
Select distinct Salary from Employee e1 where 2=Select count(distinct Salary) from Employee e2 where e1.salary<=e2.salary;
Alternative Solution : Suggested by Ankit Srivastava
select min(salary)from(select distinct salary from emp order by salary desc)where rownum<=2;
Answer :
Select * from Employee a where rowid <>( select max(rowid) from Employee b where a.Employee_num=b.Employee_num);
Answer:
   Select Employee_name,Salary/12 as ‘Monthly Salary’ from employee;
4.What is the Query to fetch first record from Employee table? (90% asked Complex SQL Queries Examples)
Answer:
 Select * from Employee where Rownum =1;
5.What is the Query to fetch last record from the table?
Answer:
Select * from Employee where Rowid= select max(Rowid) from Employee;

6.What is Query to display first 5 Records from Employee table?(90% asked Complex SQL Queries Examples)
Answer:
Select * from Employee where Rownum <= 5;

     


6.What is Query to display last 5 Records from Employee table?(90% asked Complex SQL Queries Examples)
Answer:
Select * from Employee e where rownum <=5
union
select * from (Select * from Employee e order by rowid desc) where rownum <=5;
7.What is Query to display Nth Record from Employee table?
Answer :
select * from ( select a.*, rownum rnum from ( YOUR_QUERY_GOES_HERE — including the order by ) a where rownum <= N_ROWS ) where rnum >= N_ROWS

8.How to get 3 Highest salaries records from Employee table?
Answer:
select distinct salary from employee a where 3 >= (select count(distinct salary) from employee b where a.salary <= b.salary) order by a.salary desc;
Alternative Solution: Suggested by Ankit Srivastava
select min(salary)from(select distinct salary from emp order by salary desc)where rownum<=3;
9.How to Display Odd rows in Employee table?(90% asked Complex SQL Queries Examples)
Answer:
Select * from(Select rownum as rno,E.* from Employee E) where Mod(rno,2)=1;
10.How to Display Even rows in Employee table?
Answer:
Select * from(Select rownum as rno,E.* from Employee) where Mod(rno,2)=0;

        

11.How to fetch 3rd highest salary using Rank Function?
Answer:
select * from (Select Dense_Rank() over ( order by  salary desc) as Rnk,E.* from Employee E) where Rnk=3;

12.How Can i create table with same structure of Employee table?(90% asked Complex SQL Queries Examples)
Answer:
Create table Employee_1 as Select * from Employee where 1=2;
13.Display first 50% records from Employee table?
Answer:
select rownum, e.* from emp e where rownum<=(select count(*)/2 from emp);
14.Display last 50% records from Employee table?
Answer:
Select rownum,E.* from Employee E
minus
Select rownum,E.* from Employee E where rownum<=(Select count(*)/2) from Employee);
15.How Can i create table with same structure with data of Employee table?
Answer:
Create table Employee1 as select * from Employee;
16.How do i fetch only common records between 2 tables.
Answer:
Select * from Employee;
Intersect
Select * from Employee1;
17.Find Query to get information of Employee where Employee is not assigned to the department
Answer:
Select * from Employee where Dept_no Not in(Select Department_no from Department);
18.How to get distinct records from the table without using distinct keyword.
Answer:
select * from Employee a where  rowid = (select max(rowid) from Employee b where  a.Employee_no=b.Employee_no);
19.Select all records from Employee table whose name is ‘Amit’ and ‘Pradnya’
Answer:
Select * from Employee where Name in(‘Amit’,’Pradnya’);
20.Select all records from Employee table where name not in ‘Amit’ and ‘Pradnya’
Answer:
select * from Employee where name Not  in (‘Amit’,’Pradnya’);
21.how to write sql query for the below scenario
I/p:ORACLE
O/p:
O
R
A
C
L
E
i.e, splitting into multiple columns a string using sql.
Answer:
Select Substr(‘ORACLE’,Level,1) From Dual
Connect By Level<= Length(‘ORACLE’);
22.How to fetch all the records from Employee whose joining year is  2017?
Answer:
Oracle:
select * from Employee where To_char(Joining_date,’YYYY’)=’2017′;
MS SQL:
select * from Employee where substr(convert(varchar,Joining_date,103),7,4)=’2017′;
23.What is SQL Query to find maximum salary of each department?
Answer:
Select Dept_id,max(salary) from Employee group by Dept_id;
24.How Do you find all Employees with its managers?(Consider there is manager id also in Employee table)
Answer:
Select e.employee_name,m.employee name from Employee e,Employee m where e.Employee_id=m.Manager_id;
25.Display the name of employees who have joined in 2016 and salary is greater than 10000?
Answer:
Select name from Employee where Hire_Date like ‘2016%’ and salary>10000;
26.How to display following using query?
*
**
***
Answer:
We cannot use dual table to display output given above. To display output use any table. I am using Student table.
SELECT lpad (‘*’, ROWNUM,’*’) FROM Student WHERE ROWNUM <4;
27.How to add the email validation using only one query?
Answer :
User needs to use REGEXP_LIKE function for email validation.
 SELECT
Email
FROM
Employee
where NOT REGEXP_LIKE(Email, ‘[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}’, ‘i’);
28.How to display 1 to 100 Numbers with query?
Answer:
Select level from dual connect by level <=100;
Tip: User needs to know the concept of Hierarchical queries. Click here to get concept of hierarchical queries
29.How to remove duplicate rows from table?(100% asked in Complex SQL Queries for Interviews)
Answer:
First Step: Selecting Duplicate rows from table
Tip: Use concept of max (rowid) of table. Click here to get concept of rowid.
Select rollno FROM Student WHERE ROWID <>
(Select max (rowid) from Student b where rollno=b.rollno);
Step 2:  Delete duplicate rows
Delete FROM Student WHERE ROWID <>
(Select max (rowid) from Student b where rollno=b.rollno);
30.How to find count of duplicate rows? (95% asked in SQL queries for Interviews )
Answer:
Select rollno, count (rollno) from Student
Group by rollno
Having count (rollno)>1
Order by count (rollno) desc;

Comments

Popular posts from this blog