0% found this document useful (0 votes)
3 views

SQL Top 30

The document provides a comprehensive list of SQL query interview questions along with their answers, covering various topics such as data retrieval, filtering, aggregation, and table manipulation. It includes queries for fetching employee details, counting records, and handling string operations. The queries are designed to demonstrate SQL skills relevant for job interviews in database management.

Uploaded by

Jyoshma G
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

SQL Top 30

The document provides a comprehensive list of SQL query interview questions along with their answers, covering various topics such as data retrieval, filtering, aggregation, and table manipulation. It includes queries for fetching employee details, counting records, and handling string operations. The queries are designed to demonstrate SQL skills relevant for job interviews in database management.

Uploaded by

Jyoshma G
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Let us start by taking a look at some of the most frequently asked SQL Query

interview questions,

1. Write a query to fetch the EmpFname from the EmployeeInfo table in the
upper case and use the ALIAS name as EmpName.

Ans: SELECT UPPER(EmpFname) AS EmpName FROM EmployeeInfo;


2. Write a query to fetch the number of employees working in the department
‘HR’.
Ans: SELECT COUNT(*) FROM EmployeeInfo WHERE Department =
'HR';

3. Write a query to get the current date.


Ans: SELECT GETDATE();

4. Write a query to retrieve the first four characters of EmpLname from the
EmployeeInfo table.

Ans: SELECT SUBSTRING(EmpLname, 1, 4) FROM EmployeeInfo;

5. Write a query to fetch only the place name(string before brackets) from the
Address column of EmployeeInfo table.?
Ans: Using the MID function in MySQL
SELECT MID(Address, 0, LOCATE('(',Address)) FROM EmployeeInfo;

OR
Using SUBSTRING

SELECT SUBSTRING(Address, 1, CHARINDEX('(',Address)) FROM


EmployeeInfo;

6. Write a query to create a new table that consists of data and structure copied
from the other table.
Ans: SELECT * INTO NewTable FROM EmployeeInfo WHERE 1 = 0;

OR
CREATE TABLE NewTable AS SELECT * FROM EmployeeInfo;

7. Write q query to find all the employees whose salary is between 50000 to
100000.?
Ans: SELECT * FROM EmployeePosition WHERE Salary BETWEEN
'50000' AND '100000';

8. Write a query to find the names of employees that begin with ‘S’
Ans: SELECT * FROM EmployeeInfo WHERE EmpFname LIKE 'S%';

9. Write a query to fetch top N records.Write a query to retrieve the EmpFname


and EmpLname in a single column as “FullName”. The first name and the last
name must be separated with space.
Ans:

10. Write a query to retrieve the EmpFname and EmpLname in a single column
as “FullName”. The first name and the last name must be separated with
space.
Ans:SELECT CONCAT(EmpFname, ' ', EmpLname) AS 'FullName' FROM
EmployeeInfo;
Q11. Write a query find number of employees whose DOB is between
02/05/1970 to 31/12/1975 and are grouped according to gender

Ans: SELECT COUNT(*), Gender FROM EmployeeInfo WHERE DOB


BETWEEN '02/05/1970 ' AND '31

12. Write a query to fetch all the records from the EmployeeInfo table
ordered by EmpLname in descending order and Department in the
ascending order.

Ans: SELECT * FROM EmployeeInfo ORDER BY EmpFname desc,


Department asc;

13. Write a query to fetch details of employees whose EmpLname


ends with an alphabet ‘A’ and contains five alphabets.

Ans: SELECT * FROM EmployeeInfo WHERE EmpLname LIKE '____a';

14. Write a query to fetch details of all employees excluding the


employees with first names, “Sanjay” and “Sonia” from the
EmployeeInfo table.
SELECT * FROM EmployeeInfo WHERE EmpFname NOT IN
('Sanjay','Sonia');

15. Write a query to fetch details of employees with the address as


“DELHI(DEL)”.

SELECT * FROM EmployeeInfo WHERE Address LIKE 'DELHI(DEL)%';

16. Write a query to fetch all employees who also hold the managerial
position.

SELECT E.EmpFname, E.EmpLname, P.EmpPosition

FROM EmployeeInfo E INNER JOIN EmployeePosition P ON

E.EmpID = P.EmpID AND P.EmpPosition IN ('Manager');

17.Write a query to fetch the department-wise count of employees


sorted by department’s count in ascending order.
SELECT Department, count(EmpID) AS EmpDeptCount

FROM EmployeeInfo GROUP BY Department

ORDER BY EmpDeptCount ASC;


18. Write a query to calculate the even and odd records from a table.

To retrieve the even records from a table, you have to use the MOD() function as
follows:

SELECT EmpID FROM (SELECT rowno, EmpID from EmployeeInfo)


WHERE MOD(rowno,2)=0;

OR

SELECT EmpID FROM (SELECT rowno, EmpID from EmployeeInfo)


WHERE MOD(rowno,2)=1;

19. Write a SQL query to retrieve employee details from EmployeeInfo


table who have a date of joining in the EmployeePosition table.

SELECT * FROM EmployeeInfo E

WHERE EXISTS

(SELECT * FROM EmployeePosition P WHERE E.EmpId = P.EmpId);

Q20. Write a query to retrieve two minimum and maximum salaries


from the EmployeePosition table.

To retrieve two minimum salaries, you can write a query as below:

SELECT DISTINCT Salary FROM EmployeePosition E1 WHERE 2 >=


(SELECTCOUNT(DISTINCT Salary)FROM EmployeePosition E2 WHERE
E1.Salary >= E2.Salary) ORDER BY E1.Salary DESC;

21. Write a query to find the Nth highest salary from the table without
using TOP/limit keyword.
SELECT Salary FROM EmployeePosition E1 WHERE N-1 = ( SELECT
COUNT( DISTINCT ( E2.Salary ) ) FROM EmployeePosition E2 WHERE
E2.Salary > E1.Salary );

22. Write a query to retrieve duplicate records from a table.

SELECT EmpID, EmpFname, Department COUNT(*)

FROM EmployeeInfo GROUP BY EmpID, EmpFname, Department

HAVING COUNT(*) > 1;


23.Write a query to retrieve the list of employees working in the same
department.
Select DISTINCT E.EmpID, E.EmpFname, E.Department

FROM EmployeeInfo E, Employee E1

WHERE E.Department = E1.Department AND E.EmpID != E1.EmpID;

24.Write a query to retrieve the last 3 records from the EmployeeInfo


table.

SELECT * FROM EmployeeInfo WHERE

EmpID <=3 UNION SELECT * FROM

(SELECT * FROM EmployeeInfo E ORDER BY E.EmpID DESC)

AS E1 WHERE E1.EmpID <=3;

25.Write a query to find the third-highest salary from the EmpPosition


table.

SELECT TOP 1 salary FROM( SELECT TOP 3 salary FROM


employee_table ORDER BY salary DESC) AS emp ORDER BY salary
ASC;

26. Write a query to display the first and the last record from the
EmployeeInfo table.

To display the first record from the EmployeeInfo table, you can write a query as
follows:

SELECT * FROM EmployeeInfo WHERE EmpID = (SELECT MIN(EmpID)


FROM EmployeeInfo);

OR

SELECT * FROM EmployeeInfo WHERE EmpID = (SELECT MAX(EmpID)


FROM EmployeeInfo);

27. Write a query to add email validation to your database?

SELECT Email FROM EmployeeInfo WHERE NOT REGEXP_LIKE(Email,


‘[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}’, ‘i’);
28. Write a query to retrieve Departments who have less than 2
employees working in it.

SELECT DEPARTMENT, COUNT(EmpID) as 'EmpNo' FROM EmployeeInfo


GROUP BY DEPARTMENT HAVING COUNT(EmpD) < 2;

29. Write a query to retrieve EmpPostion along with total salaries paid
for each of them.

SELECT EmpPosition, SUM(Salary) from EmployeePosition GROUP BY


EmpPosition;

30. Write a query to fetch 50% records from the EmployeeInfo table.

SELECT *

FROM EmployeeInfo WHERE

EmpID <= (SELECT COUNT(EmpID)/2 from EmployeeInfo);

You might also like