๐ฅ Top SQL Interview Questions with Answers
๐ฏ 1๏ธโฃ Find 2nd Highest Salary
๐ Table: employees
id | name | salary
1 | Rahul | 50000
2 | Priya | 70000
3 | Amit | 60000
4 | Neha | 70000
โ Problem Statement: Find the second highest distinct salary from the employees table.
โ
Solution
SELECT MAX(salary) FROM employees WHERE salary < ( SELECT MAX(salary) FROM employees );
๐ฏ 2๏ธโฃ Find Nth Highest Salary
๐ Table: employees
id | name | salary
1 | A | 100
2 | B | 200
3 | C | 300
4 | D | 200
โ Problem Statement: Write a query to find the 3rd highest salary.
โ
Solution
SELECT salary FROM ( SELECT salary, DENSE_RANK() OVER(ORDER BY salary DESC) r FROM employees ) t WHERE r = 3;
๐ฏ 3๏ธโฃ Find Duplicate Records
๐ Table: employees
id | name
1 | Rahul
2 | Amit
3 | Rahul
4 | Neha
โ Problem Statement: Find all duplicate names in the employees table.
โ
Solution
SELECT name, COUNT(*) FROM employees GROUP BY name HAVING COUNT(*) > 1;
๐ฏ 4๏ธโฃ Customers with No Orders
๐ Table: customers
customer_id | name
1 | Rahul
2 | Priya
3 | Amit
๐ Table: orders
order_id | customer_id
101 | 1
102 | 2
โ Problem Statement: Find customers who have not placed any orders.
โ
Solution
SELECT c.name FROM customers c LEFT JOIN orders o ON c.customer_id = o.customer_id WHERE o.customer_id IS NULL;
๐ฏ 5๏ธโฃ Top 3 Salaries per Department
๐ Table: employees
name | department | salary
A | IT | 100
B | IT | 200
C | IT | 150
D | HR | 120
E | HR | 180
โ Problem Statement: Find the top 3 highest salaries in each department.
โ
Solution
SELECT * FROM ( SELECT name, department, salary, ROW_NUMBER() OVER( PARTITION BY department ORDER BY salary DESC ) r FROM employees ) t WHERE r <= 3;
๐ฏ 6๏ธโฃ Running Total of Sales
๐ Table: sales
date | sales
2024-01-01 | 100
2024-01-02 | 200
2024-01-03 | 300
โ Problem Statement: Calculate the running total of sales by date.
โ
Solution
SELECT date, sales, SUM(sales) OVER(ORDER BY date) AS running_total FROM sales;
๐ฏ 7๏ธโฃ Employees Above Average Salary
๐ Table: employees
name | salary
A | 100
B | 200
C | 300
โ Problem Statement: Find employees earning more than the average salary.
โ
Solution
SELECT name, salary FROM employees WHERE salary > ( SELECT AVG(salary) FROM employees );
๐ฏ 8๏ธโฃ Department with Highest Total Salary
๐ Table: employees
name | department | salary
A | IT | 100
B | IT | 200
C | HR | 500
โ Problem Statement: Find the department with the highest total salary.
โ
Solution
SELECT department, SUM(salary) AS total_salary FROM employees GROUP BY department ORDER BY total_salary DESC LIMIT 1;
๐ฏ 9๏ธโฃ Customers Who Placed Orders
๐ Tables: Same as Q4
โ Problem Statement: Find customers who have placed at least one order.
โ
Solution
SELECT name FROM customers c WHERE EXISTS ( SELECT 1 FROM orders o WHERE c.customer_id = o.customer_id );
๐ฏ ๐ Remove Duplicate Records
๐ Table: employees
id | name
1 | Rahul
2 | Rahul
3 | Amit
โ Problem Statement: Delete duplicate records but keep one unique record.
โ
Solution
DELETE FROM employees WHERE id NOT IN ( SELECT MIN(id) FROM employees GROUP BY name );
๐ Pro Tip:
๐ In interviews:
First explain logic
Then write query
Then optimize
Double Tap โฅ๏ธ For More
Post #2138
1.85K
- โค 6