Appearance
🎯 SQL Interview Questions (Data Engineering Focus)
This section contains the most commonly asked SQL patterns in data engineering interviews.
Focus here is not syntax — but thinking patterns.
🧠 Mental Model
Most SQL interview questions test:
- Data relationships
- Edge cases
- Aggregation logic
- Ranking logic
- Deduplication patterns
👉 Think: “How does data transform step by step?”
📌 1. Top N per Group (VERY COMMON)
Find top 3 highest salaries per department.
SELECT *
FROM ( SELECT name, department, salary,
ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC) AS rn
FROM employees ) t
WHERE rn <= 3;
📌 2. Second Highest Salary
SELECT MAX(salary)
FROM employees
WHERE salary < ( SELECT MAX(salary) FROM employees );
📌 3. Remove Duplicates (Keep Latest)
SELECT *
FROM ( SELECT *,
ROW_NUMBER() OVER (PARTITION BY email ORDER BY created_at DESC) AS rn
FROM users ) t
WHERE rn = 1;
📌 4. Find Employees with No Orders
SELECT u.name
FROM users u
LEFT JOIN orders o
ON u.user_id = o.user_id
WHERE o.user_id IS NULL;
📌 5. Running Total
SELECT date, amount,
SUM(amount) OVER (ORDER BY date) AS running_total
FROM sales;
📌 6. Find Duplicate Records
SELECT email, COUNT()
FROM users
GROUP BY email
HAVING COUNT() > 1;
📌 7. Customers with More Than 3 Orders
SELECT customer_id
FROM orders
GROUP BY customer_id
HAVING COUNT(*) > 3;
📌 8. Rank Without Gaps
SELECT name, salary,
DENSE_RANK() OVER (ORDER BY salary DESC) AS rnk
FROM employees;
📌 9. Difference Between Two Dates
SELECT user_id,
DATEDIFF(day, MIN(login_date), MAX(login_date)) AS active_days
FROM user_logins
GROUP BY user_id;
📌 10. Find First Order per User
SELECT *
FROM ( SELECT *,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY order_date ASC) AS rn
FROM orders ) t
WHERE rn = 1;
🧠 COMMON PATTERNS IN INTERVIEWS
Most questions fall into these categories:
1. Ranking
- ROW_NUMBER
- RANK
- DENSE_RANK
2. Aggregation
- GROUP BY
- HAVING
3. Joins
- LEFT JOIN for missing data detection
- INNER JOIN for matching data
4. Deduplication
- ROW_NUMBER + PARTITION BY
⚠️ COMMON MISTAKES
- Using GROUP BY incorrectly
- Forgetting PARTITION BY in window functions
- Using WHERE instead of HAVING
- Not handling NULLs in joins
- Writing subqueries when window functions are simpler
🧠 INTERVIEW STRATEGY
When solving SQL problems:
- Identify entities (tables)
- Identify relationships (joins)
- Identify transformation (aggregation/window)
- Identify final output shape
🚀 SUMMARY
- SQL interviews test logic, not syntax
- Window functions are key
- Deduplication is very common
- Joins + grouping = most questions
🔥 FINAL TIP
If you can master:
- Joins
- Window functions
- GROUP BY
👉 You can solve 90% of SQL interview questions