-
Notifications
You must be signed in to change notification settings - Fork 1
Leetcode: SQL Interview Prep Guide
Praveen Kumar Anwla edited this page Dec 27, 2023
·
17 revisions
Ans:
# Write your MySQL query statement below
SELECT EMP.name AS Employee FROM Employee EMP,Employee MGR
WHERE EMP.managerId=MGR.id AND EMP.salary>MGR.salary
Ans:
# Method1 :
SELECT E1.name
FROM Employee E1
JOIN (
SELECT managerId, COUNT(*) AS directReports
FROM Employee
GROUP BY managerId
HAVING COUNT(*) >= 5
) E2 ON E1.id = E2.managerId;
# Method 2
SELECT e.name
FROM Employee AS e
INNER JOIN Employee AS m ON e.id=m.managerId
GROUP BY m.managerId
HAVING COUNT(m.managerId) >= 5
# Method 3
SELECT name
FROM Employee
WHERE id IN (
SELECT managerId
FROM Employee
GROUP BY managerId
HAVING COUNT(*) >= 5)
# Method 4
SELECT a.name
FROM Employee a
JOIN Employee b ON a.id = b.managerId
GROUP BY b.managerId
HAVING COUNT(*) >= 5
# Method 5
SELECT e1.name
FROM employee e1
LEFT JOIN employee e2 ON e1.id=e2.managerId
GROUP BY e1.id
HAVING COUNT(e2.name) >= 5;