SQL Challenges for Data Analytics – With Explanation
(Beginner 

SQL:
SELECT name, email FROM users;


SQL:
SELECT * FROM users WHERE age > 30;


SQL:
SELECT * FROM users ORDER BY registered_at DESC;


SQL:
SELECT COUNT(*) AS total_users, AVG(age) AS avg_age FROM users;
• COUNT(*) counts total rows (users)
• AVG(age) calculates the average age


SQL:
SELECT city, COUNT(*) AS user_count FROM users GROUP BY city;


SQL:
SELECT users.name, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id;


SQL:
SELECT city, COUNT(*) AS total
FROM users
GROUP BY city
HAVING COUNT(*) > 5;


SQL:
SELECT * FROM users
WHERE salary > (SELECT AVG(salary) FROM users);


SQL:
SELECT name,
CASE
WHEN age < 18 THEN 'Teen'
WHEN age <= 40 THEN 'Adult'
ELSE 'Senior'
END AS age_group
FROM users;


SQL:
SELECT name, city, score,
RANK() OVER (PARTITION BY city ORDER BY score DESC) AS rank
FROM users;
