𝗧𝗵𝗲 𝟯 𝗦𝗸𝗶𝗹𝗹𝘀 𝗧𝗵𝗮𝘁 𝗪𝗶𝗹𝗹 𝗠𝗮𝗸𝗲 𝗬𝗼𝘂 𝗨𝗻𝘀𝘁𝗼𝗽𝗽𝗮𝗯𝗹𝗲 𝗶𝗻 𝟮𝟬𝟮𝟲😍
Start learning for FREE and earn a certification that adds real value to your resume.
𝗖𝗹𝗼𝘂𝗱 𝗖𝗼𝗺𝗽𝘂𝘁𝗶𝗻𝗴:- https://pdlink.in/3LoutZd
𝗖𝘆𝗯𝗲𝗿 𝗦𝗲𝗰𝘂𝗿𝗶𝘁𝘆:- https://pdlink.in/3N9VOyW
𝗕𝗶𝗴 𝗗𝗮𝘁𝗮 𝗔𝗻𝗮𝗹𝘆𝘁𝗶𝗰𝘀:- https://pdlink.in/497MMLw
👉 Enroll today & future-proof your career!
Start learning for FREE and earn a certification that adds real value to your resume.
𝗖𝗹𝗼𝘂𝗱 𝗖𝗼𝗺𝗽𝘂𝘁𝗶𝗻𝗴:- https://pdlink.in/3LoutZd
𝗖𝘆𝗯𝗲𝗿 𝗦𝗲𝗰𝘂𝗿𝗶𝘁𝘆:- https://pdlink.in/3N9VOyW
𝗕𝗶𝗴 𝗗𝗮𝘁𝗮 𝗔𝗻𝗮𝗹𝘆𝘁𝗶𝗰𝘀:- https://pdlink.in/497MMLw
👉 Enroll today & future-proof your career!
✅ Basic SQL Queries Interview Questions With Answers 🖥️
1. What does SELECT do
• SELECT fetches data from a table
• You choose columns you want to see
Example: SELECT name, salary FROM employees;
2. What does FROM do
• FROM tells SQL where data lives
• It specifies the table name
Example: SELECT * FROM customers;
3. What is WHERE clause
• WHERE filters rows
• It runs before aggregation
Example: SELECT * FROM orders WHERE status = 'Delivered';
4. Difference between WHERE and HAVING
• WHERE filters rows before GROUP BY
• HAVING filters groups after aggregation
Example: WHERE filters orders, HAVING filters total_sales
5. How do you sort data
• Use ORDER BY
• Default order is ASC
Example: SELECT * FROM employees ORDER BY salary DESC;
6. How do you sort by multiple columns
• SQL sorts left to right
Example: SELECT * FROM students ORDER BY class ASC, marks DESC;
7. What is LIMIT
• LIMIT restricts number of rows returned
• Useful for top N queries
Example: SELECT * FROM products LIMIT 5;
8. What is OFFSET
• OFFSET skips rows
• Used with LIMIT for pagination
Example: SELECT * FROM products LIMIT 5 OFFSET 10;
9. How do you filter on multiple conditions
• Use AND, OR
Example: SELECT * FROM users WHERE city = 'Delhi' AND age > 25;
10. Difference between AND and OR
• AND needs all conditions true
• OR needs one condition true
Quick interview advice
• Always say execution order: FROM → WHERE → SELECT → ORDER BY → LIMIT
• Write clean examples
• Speak logic first, syntax next¹
Double Tap ❤️ For More
1. What does SELECT do
• SELECT fetches data from a table
• You choose columns you want to see
Example: SELECT name, salary FROM employees;
2. What does FROM do
• FROM tells SQL where data lives
• It specifies the table name
Example: SELECT * FROM customers;
3. What is WHERE clause
• WHERE filters rows
• It runs before aggregation
Example: SELECT * FROM orders WHERE status = 'Delivered';
4. Difference between WHERE and HAVING
• WHERE filters rows before GROUP BY
• HAVING filters groups after aggregation
Example: WHERE filters orders, HAVING filters total_sales
5. How do you sort data
• Use ORDER BY
• Default order is ASC
Example: SELECT * FROM employees ORDER BY salary DESC;
6. How do you sort by multiple columns
• SQL sorts left to right
Example: SELECT * FROM students ORDER BY class ASC, marks DESC;
7. What is LIMIT
• LIMIT restricts number of rows returned
• Useful for top N queries
Example: SELECT * FROM products LIMIT 5;
8. What is OFFSET
• OFFSET skips rows
• Used with LIMIT for pagination
Example: SELECT * FROM products LIMIT 5 OFFSET 10;
9. How do you filter on multiple conditions
• Use AND, OR
Example: SELECT * FROM users WHERE city = 'Delhi' AND age > 25;
10. Difference between AND and OR
• AND needs all conditions true
• OR needs one condition true
Quick interview advice
• Always say execution order: FROM → WHERE → SELECT → ORDER BY → LIMIT
• Write clean examples
• Speak logic first, syntax next¹
Double Tap ❤️ For More
❤5
✅ SQL Joins Interview Questions With Answers 🖥️
1. What is a JOIN in SQL. Explain with an example.
• JOIN combines data from multiple tables
• Tables connect using a common column
• Usually primary key to foreign key
Example tables
Customers
customer_id, name
Orders
order_id, customer_id, amount
Query
SELECT c.name, o.amount
FROM customers c
INNER JOIN orders o
ON c.customer_id = o.customer_id;
Explanation
• SQL matches customer_id in both tables
• Output shows only related customer order data
2. What is INNER JOIN. When do you use it.
• INNER JOIN returns only matching rows
• Rows without match are removed
Example
Find customers who placed orders
Query
SELECT c.customer_id, c.name
FROM customers c
INNER JOIN orders o
ON c.customer_id = o.customer_id;
Logic
• Customers without orders are excluded
• Only matched records appear
3. What is LEFT JOIN. Explain with use case.
• LEFT JOIN returns all rows from left table
• Matching rows from right table
• Non matches show NULL
Example
Find all customers and their orders
Query
SELECT c.name, o.order_id
FROM customers c
LEFT JOIN orders o
ON c.customer_id = o.customer_id;
Logic
• Customers without orders still appear
• order_id becomes NULL
4. Difference between INNER JOIN and LEFT JOIN.
• INNER JOIN removes non matching rows
• LEFT JOIN keeps all left table rows
• LEFT JOIN shows NULL for missing matches
Interview tip
Explain using one missing record example
5. What is RIGHT JOIN.
• Returns all rows from right table
• Matching rows from left table
• Rarely used in real projects
Example
SELECT c.name, o.order_id
FROM customers c
RIGHT JOIN orders o
ON c.customer_id = o.customer_id;
6. What is FULL OUTER JOIN.
• Returns all rows from both tables
• Matches where possible
• Non matches show NULL
Example
SELECT c.name, o.order_id
FROM customers c
FULL OUTER JOIN orders o
ON c.customer_id = o.customer_id;
Use case
• Data reconciliation
• Comparing two datasets
7. How do you find records present in one table but not in another.
Find customers with no orders
Query
SELECT c.customer_id, c.name
FROM customers c
LEFT JOIN orders o
ON c.customer_id = o.customer_id
WHERE o.order_id IS NULL;
Logic
• LEFT JOIN keeps all customers
• WHERE filters non matched rows
8. Explain JOIN with WHERE clause. Common mistake.
• WHERE runs after JOIN
• Wrong WHERE condition breaks LEFT JOIN
Wrong
LEFT JOIN orders
WHERE orders.amount > 1000
Correct
LEFT JOIN orders
ON (link unavailable) = (link unavailable)
AND orders.amount > 1000
9. How do you join more than two tables.
• JOIN step by step
• Each JOIN needs condition
Example
SELECT c.name, o.order_id, p.product_name
FROM customers c
JOIN orders o
ON c.customer_id = o.customer_id
JOIN products p
ON o.product_id = p.product_id;
10. SQL execution order for JOIN queries.
• FROM
• JOIN
• WHERE
• GROUP BY
• HAVING
• SELECT
• ORDER BY
Interview advice
• Always explain logic first
• Draw table flow in words
• Then write query
Double Tap ♥️ For More
1. What is a JOIN in SQL. Explain with an example.
• JOIN combines data from multiple tables
• Tables connect using a common column
• Usually primary key to foreign key
Example tables
Customers
customer_id, name
Orders
order_id, customer_id, amount
Query
SELECT c.name, o.amount
FROM customers c
INNER JOIN orders o
ON c.customer_id = o.customer_id;
Explanation
• SQL matches customer_id in both tables
• Output shows only related customer order data
2. What is INNER JOIN. When do you use it.
• INNER JOIN returns only matching rows
• Rows without match are removed
Example
Find customers who placed orders
Query
SELECT c.customer_id, c.name
FROM customers c
INNER JOIN orders o
ON c.customer_id = o.customer_id;
Logic
• Customers without orders are excluded
• Only matched records appear
3. What is LEFT JOIN. Explain with use case.
• LEFT JOIN returns all rows from left table
• Matching rows from right table
• Non matches show NULL
Example
Find all customers and their orders
Query
SELECT c.name, o.order_id
FROM customers c
LEFT JOIN orders o
ON c.customer_id = o.customer_id;
Logic
• Customers without orders still appear
• order_id becomes NULL
4. Difference between INNER JOIN and LEFT JOIN.
• INNER JOIN removes non matching rows
• LEFT JOIN keeps all left table rows
• LEFT JOIN shows NULL for missing matches
Interview tip
Explain using one missing record example
5. What is RIGHT JOIN.
• Returns all rows from right table
• Matching rows from left table
• Rarely used in real projects
Example
SELECT c.name, o.order_id
FROM customers c
RIGHT JOIN orders o
ON c.customer_id = o.customer_id;
6. What is FULL OUTER JOIN.
• Returns all rows from both tables
• Matches where possible
• Non matches show NULL
Example
SELECT c.name, o.order_id
FROM customers c
FULL OUTER JOIN orders o
ON c.customer_id = o.customer_id;
Use case
• Data reconciliation
• Comparing two datasets
7. How do you find records present in one table but not in another.
Find customers with no orders
Query
SELECT c.customer_id, c.name
FROM customers c
LEFT JOIN orders o
ON c.customer_id = o.customer_id
WHERE o.order_id IS NULL;
Logic
• LEFT JOIN keeps all customers
• WHERE filters non matched rows
8. Explain JOIN with WHERE clause. Common mistake.
• WHERE runs after JOIN
• Wrong WHERE condition breaks LEFT JOIN
Wrong
LEFT JOIN orders
WHERE orders.amount > 1000
Correct
LEFT JOIN orders
ON (link unavailable) = (link unavailable)
AND orders.amount > 1000
9. How do you join more than two tables.
• JOIN step by step
• Each JOIN needs condition
Example
SELECT c.name, o.order_id, p.product_name
FROM customers c
JOIN orders o
ON c.customer_id = o.customer_id
JOIN products p
ON o.product_id = p.product_id;
10. SQL execution order for JOIN queries.
• FROM
• JOIN
• WHERE
• GROUP BY
• HAVING
• SELECT
• ORDER BY
Interview advice
• Always explain logic first
• Draw table flow in words
• Then write query
Double Tap ♥️ For More
❤9
✅ SQL GROUP BY and AGGREGATION Interview Questions 🎓
1. What is GROUP BY in SQL.
• GROUP BY groups rows with same values
• Used with aggregate functions
• One row per group in output
Example
Find total salary per department
Logic
• Rows grouped by department
• SUM runs on each group
2. Why do we use aggregate functions.
• To summarize data
• To calculate totals, averages, counts
Common functions
• COUNT
• SUM
• AVG
• MIN
• MAX
3. What happens if you use GROUP BY without aggregation.
• Output shows unique combinations of grouped columns
Example
Logic
• Acts like DISTINCT
4. Difference between WHERE and HAVING.
• WHERE filters rows
• HAVING filters groups
• WHERE runs before GROUP BY
• HAVING runs after GROUP BY
Example
Find departments with total salary above 5,00,000
5. Can you use WHERE with GROUP BY.
• Yes
• WHERE filters raw data before grouping
Example
Ignore inactive employees
6. Common GROUP BY interview error.
Why does this query fail
Answer
• Non aggregated column must be in GROUP BY
• name is missing
Correct query
7. What's the difference between COUNT(*) COUNT(column)?
• COUNT(*) counts all rows
• COUNT(column) skips NULL values
Example
8. Find total orders per customer.
Logic
• One row per customer
• COUNT runs per customer group
9. Find customers with more than 5 orders.
Logic
• GROUP first
• Filter groups using HAVING
10. Execution order for GROUP BY queries.
• FROM
• WHERE
• GROUP BY
• HAVING
• SELECT
• ORDER BY
Interview advice
• Say execution order clearly
• Explain using one simple example
• Avoid mixing WHERE and HAVING logic
Double Tap ♥️ For More
1. What is GROUP BY in SQL.
• GROUP BY groups rows with same values
• Used with aggregate functions
• One row per group in output
Example
Find total salary per department
FROM employees
GROUP BY department;
Logic
• Rows grouped by department
• SUM runs on each group
2. Why do we use aggregate functions.
• To summarize data
• To calculate totals, averages, counts
Common functions
• COUNT
• SUM
• AVG
• MIN
• MAX
3. What happens if you use GROUP BY without aggregation.
• Output shows unique combinations of grouped columns
Example
FROM employees
GROUP BY department;
Logic
• Acts like DISTINCT
4. Difference between WHERE and HAVING.
• WHERE filters rows
• HAVING filters groups
• WHERE runs before GROUP BY
• HAVING runs after GROUP BY
Example
Find departments with total salary above 5,00,000
FROM employees
GROUP BY department
HAVING SUM(salary) > 500000;
5. Can you use WHERE with GROUP BY.
• Yes
• WHERE filters raw data before grouping
Example
Ignore inactive employees
FROM employees
WHERE status = 'Active'
GROUP BY department;
6. Common GROUP BY interview error.
Why does this query fail
FROM employees
GROUP BY department;
Answer
• Non aggregated column must be in GROUP BY
• name is missing
Correct query
FROM employees
GROUP BY department;
7. What's the difference between COUNT(*) COUNT(column)?
• COUNT(*) counts all rows
• COUNT(column) skips NULL values
Example
SELECT COUNT(delivery_date) FROM orders;
8. Find total orders per customer.
FROM orders
GROUP BY customer_id;
Logic
• One row per customer
• COUNT runs per customer group
9. Find customers with more than 5 orders.
FROM orders
GROUP BY customer_id
HAVING COUNT(order_id) > 5;
Logic
• GROUP first
• Filter groups using HAVING
10. Execution order for GROUP BY queries.
• FROM
• WHERE
• GROUP BY
• HAVING
• SELECT
• ORDER BY
Interview advice
• Say execution order clearly
• Explain using one simple example
• Avoid mixing WHERE and HAVING logic
Double Tap ♥️ For More
❤7
𝗙𝘂𝗹𝗹𝘀𝘁𝗮𝗰𝗸 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗺𝗲𝗻𝘁 𝗵𝗶𝗴𝗵-𝗱𝗲𝗺𝗮𝗻𝗱 𝘀𝗸𝗶𝗹𝗹 𝗜𝗻 𝟮𝟬𝟮𝟲😍
Join FREE Masterclass In Hyderabad/Pune/Noida Cities
𝗛𝗶𝗴𝗵𝗹𝗶𝗴𝗵𝘁𝗲𝘀:-
- 500+ Hiring Partners
- 60+ Hiring Drives
- 100% Placement Assistance
𝗕𝗼𝗼𝗸 𝗮 𝗙𝗥𝗘𝗘 𝗱𝗲𝗺𝗼👇:-
🔹 Hyderabad :- https://pdlink.in/4cJUWtx
🔹 Pune :- https://pdlink.in/3YA32zi
🔹 Noida :- https://linkpd.in/NoidaFSD
Hurry Up 🏃♂️! Limited seats are available
Join FREE Masterclass In Hyderabad/Pune/Noida Cities
𝗛𝗶𝗴𝗵𝗹𝗶𝗴𝗵𝘁𝗲𝘀:-
- 500+ Hiring Partners
- 60+ Hiring Drives
- 100% Placement Assistance
𝗕𝗼𝗼𝗸 𝗮 𝗙𝗥𝗘𝗘 𝗱𝗲𝗺𝗼👇:-
🔹 Hyderabad :- https://pdlink.in/4cJUWtx
🔹 Pune :- https://pdlink.in/3YA32zi
🔹 Noida :- https://linkpd.in/NoidaFSD
Hurry Up 🏃♂️! Limited seats are available
❤3
✅ SQL Window Functions Interview Questions with Answers ✍️
1. What are window functions in SQL?
• Window functions perform calculations across related rows
• They do not reduce rows
• Each row keeps its detail
Key syntax: OVER (PARTITION BY, ORDER BY)
2. Difference between GROUP BY and window functions
• GROUP BY collapses rows
• Window functions keep all rows
• Window functions add calculated columns
3. What is ROW_NUMBER?
• Assigns unique sequential number
• No ties allowed
Example: Rank employees by salary
SELECT name, salary, ROW_NUMBER() OVER (ORDER BY salary DESC) AS rn
FROM employees;
4. Difference between ROW_NUMBER, RANK, and DENSE_RANK
• ROW_NUMBER gives unique numbers
• RANK skips numbers on ties
• DENSE_RANK does not skip
Example salaries: 100, 100, 90
ROW_NUMBER → 1, 2, 3
RANK → 1, 1, 3
DENSE_RANK → 1, 1, 2
5. What is PARTITION BY?
• PARTITION BY splits data into groups
• Window function runs inside each group
Example: Rank employees per department
SELECT department, name, salary,
RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS dept_rank
FROM employees;
6. Find top 2 salaries per department
SELECT * FROM (
SELECT department, name, salary,
DENSE_RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS rnk
FROM employees
) t
WHERE rnk <= 2;
7. What is LAG?
• Accesses previous row value
• Used for comparisons
Example: Day over day sales
SELECT date, sales, LAG(sales) OVER (ORDER BY date) AS prev_day_sales
FROM daily_sales;
8. What is LEAD?
• Accesses next row value
Example: Compare today with next day
SELECT date, sales, LEAD(sales) OVER (ORDER BY date) AS next_day_sales
FROM daily_sales;
9. Calculate day over day growth
SELECT date, sales - LAG(sales) OVER (ORDER BY date) AS growth
FROM daily_sales;
10. Common window function interview mistakes
• Forgetting ORDER BY inside OVER
• Using WHERE instead of subquery to filter ranks
• Mixing GROUP BY with window logic incorrectly
Execution order: FROM → WHERE → GROUP BY → HAVING → SELECT → WINDOW → ORDER BY
Double Tap ♥️ For More
1. What are window functions in SQL?
• Window functions perform calculations across related rows
• They do not reduce rows
• Each row keeps its detail
Key syntax: OVER (PARTITION BY, ORDER BY)
2. Difference between GROUP BY and window functions
• GROUP BY collapses rows
• Window functions keep all rows
• Window functions add calculated columns
3. What is ROW_NUMBER?
• Assigns unique sequential number
• No ties allowed
Example: Rank employees by salary
SELECT name, salary, ROW_NUMBER() OVER (ORDER BY salary DESC) AS rn
FROM employees;
4. Difference between ROW_NUMBER, RANK, and DENSE_RANK
• ROW_NUMBER gives unique numbers
• RANK skips numbers on ties
• DENSE_RANK does not skip
Example salaries: 100, 100, 90
ROW_NUMBER → 1, 2, 3
RANK → 1, 1, 3
DENSE_RANK → 1, 1, 2
5. What is PARTITION BY?
• PARTITION BY splits data into groups
• Window function runs inside each group
Example: Rank employees per department
SELECT department, name, salary,
RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS dept_rank
FROM employees;
6. Find top 2 salaries per department
SELECT * FROM (
SELECT department, name, salary,
DENSE_RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS rnk
FROM employees
) t
WHERE rnk <= 2;
7. What is LAG?
• Accesses previous row value
• Used for comparisons
Example: Day over day sales
SELECT date, sales, LAG(sales) OVER (ORDER BY date) AS prev_day_sales
FROM daily_sales;
8. What is LEAD?
• Accesses next row value
Example: Compare today with next day
SELECT date, sales, LEAD(sales) OVER (ORDER BY date) AS next_day_sales
FROM daily_sales;
9. Calculate day over day growth
SELECT date, sales - LAG(sales) OVER (ORDER BY date) AS growth
FROM daily_sales;
10. Common window function interview mistakes
• Forgetting ORDER BY inside OVER
• Using WHERE instead of subquery to filter ranks
• Mixing GROUP BY with window logic incorrectly
Execution order: FROM → WHERE → GROUP BY → HAVING → SELECT → WINDOW → ORDER BY
Double Tap ♥️ For More
❤4👍2
💡 𝗠𝗮𝗰𝗵𝗶𝗻𝗲 𝗟𝗲𝗮𝗿𝗻𝗶𝗻𝗴 𝗶𝘀 𝗼𝗻𝗲 𝗼𝗳 𝘁𝗵𝗲 𝗺𝗼𝘀𝘁 𝗶𝗻-𝗱𝗲𝗺𝗮𝗻𝗱 𝘀𝗸𝗶𝗹𝗹𝘀 𝗶𝗻 𝟮𝟬𝟮𝟲!
Start learning ML for FREE and boost your resume with a certification 🏆
📊 Hands-on learning
🎓 Certificate included
🚀 Career-ready skills
🔗 𝗘𝗻𝗿𝗼𝗹𝗹 𝗙𝗼𝗿 𝗙𝗥𝗘𝗘 👇:-
https://pdlink.in/4bhetTu
👉 Don’t miss this opportunity
Start learning ML for FREE and boost your resume with a certification 🏆
📊 Hands-on learning
🎓 Certificate included
🚀 Career-ready skills
🔗 𝗘𝗻𝗿𝗼𝗹𝗹 𝗙𝗼𝗿 𝗙𝗥𝗘𝗘 👇:-
https://pdlink.in/4bhetTu
👉 Don’t miss this opportunity
❤1
📈 Want to Excel at Data Analytics? Master These Essential Skills! ☑️
Core Concepts:
• Statistics & Probability – Understand distributions, hypothesis testing
• Excel – Pivot tables, formulas, dashboards
Programming:
• Python – NumPy, Pandas, Matplotlib, Seaborn
• R – Data analysis & visualization
• SQL – Joins, filtering, aggregation
Data Cleaning & Wrangling:
• Handle missing values, duplicates
• Normalize and transform data
Visualization:
• Power BI, Tableau – Dashboards
• Plotly, Seaborn – Python visualizations
• Data Storytelling – Present insights clearly
Advanced Analytics:
• Regression, Classification, Clustering
• Time Series Forecasting
• A/B Testing & Hypothesis Testing
ETL & Automation:
• Web Scraping – BeautifulSoup, Scrapy
• APIs – Fetch and process real-world data
• Build ETL Pipelines
Tools & Deployment:
• Jupyter Notebook / Colab
• Git & GitHub
• Cloud Platforms – AWS, GCP, Azure
• Google BigQuery, Snowflake
Hope it helps :)
Core Concepts:
• Statistics & Probability – Understand distributions, hypothesis testing
• Excel – Pivot tables, formulas, dashboards
Programming:
• Python – NumPy, Pandas, Matplotlib, Seaborn
• R – Data analysis & visualization
• SQL – Joins, filtering, aggregation
Data Cleaning & Wrangling:
• Handle missing values, duplicates
• Normalize and transform data
Visualization:
• Power BI, Tableau – Dashboards
• Plotly, Seaborn – Python visualizations
• Data Storytelling – Present insights clearly
Advanced Analytics:
• Regression, Classification, Clustering
• Time Series Forecasting
• A/B Testing & Hypothesis Testing
ETL & Automation:
• Web Scraping – BeautifulSoup, Scrapy
• APIs – Fetch and process real-world data
• Build ETL Pipelines
Tools & Deployment:
• Jupyter Notebook / Colab
• Git & GitHub
• Cloud Platforms – AWS, GCP, Azure
• Google BigQuery, Snowflake
Hope it helps :)
❤3
✅ SQL CTEs and Subqueries Interview Questions with Answers 🖥️
1. Find employees who earn more than the average salary.
Table: employees (employee_id, name, salary)
Logic: Inner query calculates average salary. Outer query filters employees above average.
2. Find employees who earn the highest salary in each department.
Table: employees (employee_id, name, department, salary)
Logic: Subquery runs per department. Matches max salary inside same department.
3. Find departments where average salary is greater than 60,000.
Logic: Inner query calculates department average. Outer query filters required departments.
4. Same query using CTE.
Logic: CTE stores aggregated result. Final query reads from CTE.
5. Find customers who placed more orders than the average number of orders.
Tables: customers (customer_id, name), orders (order_id, customer_id)
Logic: Inner query calculates orders per customer. Next level gets average. HAVING filters customers above average.
6. Find top-selling product by total sales amount.
Table: sales (product_id, amount)
Logic: Inner query calculates sales per product. Outer query finds max and matches it.
7. Rewrite using CTE.
Logic: CTE avoids repeating aggregation. Cleaner and readable.
8. Find employees whose salary is greater than their department average.
Logic: First compute department averages. Join back to employees. Filter higher earners.
Double Tap ♥️ For More
1. Find employees who earn more than the average salary.
Table: employees (employee_id, name, salary)
SELECT name, salary
FROM employees
WHERE salary > (
SELECT AVG(salary)
FROM employees
);
Logic: Inner query calculates average salary. Outer query filters employees above average.
2. Find employees who earn the highest salary in each department.
Table: employees (employee_id, name, department, salary)
SELECT name, department, salary
FROM employees e
WHERE salary = (
SELECT MAX(salary)
FROM employees
WHERE department = e.department
);
Logic: Subquery runs per department. Matches max salary inside same department.
3. Find departments where average salary is greater than 60,000.
SELECT department
FROM (
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
) t
WHERE avg_salary > 60000;
Logic: Inner query calculates department average. Outer query filters required departments.
4. Same query using CTE.
WITH dept_avg AS (
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
)
SELECT department
FROM dept_avg
WHERE avg_salary > 60000;
Logic: CTE stores aggregated result. Final query reads from CTE.
5. Find customers who placed more orders than the average number of orders.
Tables: customers (customer_id, name), orders (order_id, customer_id)
SELECT customer_id
FROM orders
GROUP BY customer_id
HAVING COUNT(order_id) > (
SELECT AVG(order_count)
FROM (
SELECT COUNT(order_id) AS order_count
FROM orders
GROUP BY customer_id
) x
);
Logic: Inner query calculates orders per customer. Next level gets average. HAVING filters customers above average.
6. Find top-selling product by total sales amount.
Table: sales (product_id, amount)
SELECT product_id
FROM sales
GROUP BY product_id
HAVING SUM(amount) = (
SELECT MAX(total_sales)
FROM (
SELECT SUM(amount) AS total_sales
FROM sales
GROUP BY product_id
) t
);
Logic: Inner query calculates sales per product. Outer query finds max and matches it.
7. Rewrite using CTE.
WITH product_sales AS (
SELECT product_id, SUM(amount) AS total_sales
FROM sales
GROUP BY product_id
)
SELECT product_id
FROM product_sales
WHERE total_sales = (
SELECT MAX(total_sales)
FROM product_sales
);
Logic: CTE avoids repeating aggregation. Cleaner and readable.
8. Find employees whose salary is greater than their department average.
WITH dept_avg AS (
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
)
SELECT e.name, e.salary
FROM employees e
JOIN dept_avg d ON e.department = d.department
WHERE e.salary > d.avg_salary;
Logic: First compute department averages. Join back to employees. Filter higher earners.
Double Tap ♥️ For More
❤2
✅ SQL CASE Statements and Data Cleaning Interview Questions with Answers 📊
1. Classify customers based on total spend
Table: orders (order_id, customer_id, amount)
Requirement:
- Gold if total_spend >= 100000
- Silver if total_spend between 50000 and 99999
- Bronze otherwise
Solution:
Table: users (user_id, age)
Requirement:
- Below 18
- 18 to 30
- Above 30
Solution:
Table: employees (employee_id, salary)
Solution:
Table: employees (employee_id, email)
Solution:
Table: customers (customer_id, name)
Solution:
Table: products (product_code)
Solution:
Table: orders (order_date)
Requirement: Convert to YYYY-MM-DD
Solution:
Table: users (user_id, last_login_date)
Requirement: Inactive if last login before 2023-01-01
Solution:
Table: customers (phone_number)
Solution:
Table: transactions (amount)
Requirement:
- High if amount >= 10000
- Medium if 5000 to 9999
- Low otherwise
Solution:
1. Classify customers based on total spend
Table: orders (order_id, customer_id, amount)
Requirement:
- Gold if total_spend >= 100000
- Silver if total_spend between 50000 and 99999
- Bronze otherwise
Solution:
SELECT customer_id,2. Create an age group column for users
CASE
WHEN SUM(amount) >= 100000 THEN 'Gold'
WHEN SUM(amount) >= 50000 THEN 'Silver'
ELSE 'Bronze'
END AS customer_category
FROM orders
GROUP BY customer_id;
Table: users (user_id, age)
Requirement:
- Below 18
- 18 to 30
- Above 30
Solution:
SELECT user_id,3. Replace NULL salary with 0
CASE
WHEN age < 18 THEN 'Below 18'
WHEN age BETWEEN 18 AND 30 THEN '18-30'
ELSE 'Above 30'
END AS age_group
FROM users;
Table: employees (employee_id, salary)
Solution:
SELECT employee_id, COALESCE(salary, 0) AS salary4. Count employees with missing email IDs
FROM employees;
Table: employees (employee_id, email)
Solution:
SELECT COUNT(*) AS missing_email_count5. Remove extra spaces from customer names
FROM employees
WHERE email IS NULL;
Table: customers (customer_id, name)
Solution:
SELECT customer_id, TRIM(name) AS clean_name6. Extract first 3 characters from product code
FROM customers;
Table: products (product_code)
Solution:
SELECT product_code, SUBSTRING(product_code, 1, 3) AS product_prefix7. Standardize date format
FROM products;
Table: orders (order_date)
Requirement: Convert to YYYY-MM-DD
Solution:
SELECT CAST(order_date AS DATE) AS clean_order_date8. Mark inactive users based on last login
FROM orders;
Table: users (user_id, last_login_date)
Requirement: Inactive if last login before 2023-01-01
Solution:
SELECT user_id,9. Handle empty string as NULL
CASE
WHEN last_login_date < '2023-01-01' THEN 'Inactive'
ELSE 'Active'
END AS user_status
FROM users;
Table: customers (phone_number)
Solution:
SELECT NULLIF(phone_number, '') AS phone_number10. Create a clean reporting column using multiple rules
FROM customers;
Table: transactions (amount)
Requirement:
- High if amount >= 10000
- Medium if 5000 to 9999
- Low otherwise
Solution:
SELECT amount,Double Tap ♥️ For More
CASE
WHEN amount >= 10000 THEN 'High'
WHEN amount >= 5000 THEN 'Medium'
ELSE 'Low'
END AS transaction_type
FROM transactions;
❤7
𝗙𝗥𝗘𝗘 𝗖𝗮𝗿𝗲𝗲𝗿 𝗖𝗮𝗿𝗻𝗶𝘃𝗮𝗹 𝗯𝘆 𝗛𝗖𝗟 𝗚𝗨𝗩𝗜😍
Prove your skills in an online hackathon, clear tech interviews, and get hired faster
Highlightes:-
- 21+ Hiring Companies & 100+ Open Positions to Grab
- Get hired for roles in AI, Full Stack, & more
Experience the biggest online job fair with Career Carnival by HCL GUVI
𝗥𝗲𝗴𝗶𝘀𝘁𝗲𝗿 𝗙𝗼𝗿 𝗙𝗥𝗘𝗘👇:-
https://pdlink.in/4bQP5Ee
Hurry Up🏃♂️.....Limited Slots Available
Prove your skills in an online hackathon, clear tech interviews, and get hired faster
Highlightes:-
- 21+ Hiring Companies & 100+ Open Positions to Grab
- Get hired for roles in AI, Full Stack, & more
Experience the biggest online job fair with Career Carnival by HCL GUVI
𝗥𝗲𝗴𝗶𝘀𝘁𝗲𝗿 𝗙𝗼𝗿 𝗙𝗥𝗘𝗘👇:-
https://pdlink.in/4bQP5Ee
Hurry Up🏃♂️.....Limited Slots Available
❤1
Real-world SQL Scenario based Interview Questions with Answers
Question 1: Calculate conversion rate for a sales funnel
Tables: events (user_id, event_name, event_date)
Events: signup → product_view → purchase
Requirement: Count users at each stage, compute conversion from signup to purchase
Question 2: Build a monthly retention cohort
Tables: users (user_id, signup_date), logins (user_id, login_date)
Requirement: Cohort by signup month, show retained users by login month
Question 3: Calculate monthly churn rate
Tables: subnoscriptions (user_id, start_date, end_date)
Requirement: Churned users per month, churn rate = churned / active users
Question 4: Calculate Daily Active Users
Table: user_activity (user_id, activity_date)
Requirement: DAU per day
Question 5: Revenue by marketing channel
Tables: orders (order_id, user_id, amount, order_date), users (user_id, channel)
Requirement: Total revenue per channel, monthly breakdown
Question 6: Identify returning customers
Table: orders (order_id, customer_id, order_date)
Requirement: Customers with more than one order
Question 7: Top product by revenue per month
Table: sales (product_id, amount, sale_date)
Double Tap ♥️ For More
Question 1: Calculate conversion rate for a sales funnel
Tables: events (user_id, event_name, event_date)
Events: signup → product_view → purchase
Requirement: Count users at each stage, compute conversion from signup to purchase
WITH stages AS (
SELECT user_id,
MAX(CASE WHEN event_name = 'signup' THEN 1 ELSE 0 END) AS signup,
MAX(CASE WHEN event_name = 'product_view' THEN 1 ELSE 0 END) AS view,
MAX(CASE WHEN event_name = 'purchase' THEN 1 ELSE 0 END) AS purchase
FROM events
GROUP BY user_id
)
SELECT
SUM(signup) AS signups,
SUM(purchase) AS purchases,
ROUND(100.0 * SUM(purchase) / SUM(signup), 2) AS conversion_rate
FROM stages;
Question 2: Build a monthly retention cohort
Tables: users (user_id, signup_date), logins (user_id, login_date)
Requirement: Cohort by signup month, show retained users by login month
WITH cohort AS (
SELECT user_id, DATE_TRUNC('month', signup_date) AS cohort_month
FROM users
),
activity AS (
SELECT l.user_id, DATE_TRUNC('month', l.login_date) AS activity_month
FROM logins l
)
SELECT
c.cohort_month,
a.activity_month,
COUNT(DISTINCT a.user_id) AS active_users
FROM cohort c
JOIN activity a ON c.user_id = a.user_id
GROUP BY c.cohort_month, a.activity_month
ORDER BY c.cohort_month, a.activity_month;
Question 3: Calculate monthly churn rate
Tables: subnoscriptions (user_id, start_date, end_date)
Requirement: Churned users per month, churn rate = churned / active users
WITH active_users AS (
SELECT DATE_TRUNC('month', start_date) AS month, COUNT(DISTINCT user_id) AS active_users
FROM subnoscriptions
GROUP BY DATE_TRUNC('month', start_date)
),
churned_users AS (
SELECT DATE_TRUNC('month', end_date) AS month, COUNT(DISTINCT user_id) AS churned_users
FROM subnoscriptions
WHERE end_date IS NOT NULL
GROUP BY DATE_TRUNC('month', end_date)
)
SELECT
a.month,
a.active_users,
COALESCE(c.churned_users, 0) AS churned_users,
ROUND(100.0 * COALESCE(c.churned_users, 0) / a.active_users, 2) AS churn_rate
FROM active_users a
LEFT JOIN churned_users c ON a.month = c.month
ORDER BY a.month;
Question 4: Calculate Daily Active Users
Table: user_activity (user_id, activity_date)
Requirement: DAU per day
SELECT activity_date, COUNT(DISTINCT user_id) AS dau
FROM user_activity
GROUP BY activity_date
ORDER BY activity_date;
Question 5: Revenue by marketing channel
Tables: orders (order_id, user_id, amount, order_date), users (user_id, channel)
Requirement: Total revenue per channel, monthly breakdown
SELECT
DATE_TRUNC('month', o.order_date) AS month,
u.channel,
SUM(o.amount) AS revenue
FROM orders o
JOIN users u ON o.user_id = u.user_id
GROUP BY DATE_TRUNC('month', o.order_date), u.channel
ORDER BY month, revenue DESC;
Question 6: Identify returning customers
Table: orders (order_id, customer_id, order_date)
Requirement: Customers with more than one order
SELECT customer_id
FROM orders
GROUP BY customer_id
HAVING COUNT(order_id) > 1;
Question 7: Top product by revenue per month
Table: sales (product_id, amount, sale_date)
WITH monthly_sales AS (
SELECT
DATE_TRUNC('month', sale_date) AS month,
product_id,
SUM(amount) AS revenue
FROM sales
GROUP BY DATE_TRUNC('month', sale_date), product_id
),
ranked AS (
SELECT *, RANK() OVER (PARTITION BY month ORDER BY revenue DESC) AS rnk
FROM monthly_sales
)
SELECT month, product_id, revenue
FROM ranked
WHERE rnk = 1;
Double Tap ♥️ For More
❤6
𝗧𝗼𝗽 𝗖𝗲𝗿𝘁𝗶𝗳𝗶𝗰𝗮𝘁𝗶𝗼𝗻𝘀 𝗧𝗼 𝗚𝗲𝘁 𝗛𝗶𝗴𝗵 𝗣𝗮𝘆𝗶𝗻𝗴 𝗝𝗼𝗯 𝗜𝗻 𝟮𝟬𝟮𝟲😍
Opportunities With 500+ Hiring Partners
𝗙𝘂𝗹𝗹𝘀𝘁𝗮𝗰𝗸:- https://pdlink.in/4hO7rWY
𝗗𝗮𝘁𝗮 𝗔𝗻𝗮𝗹𝘆𝘁𝗶𝗰𝘀:- https://pdlink.in/4fdWxJB
📈 Start learning today, build job-ready skills, and get placed in leading tech companies.
Opportunities With 500+ Hiring Partners
𝗙𝘂𝗹𝗹𝘀𝘁𝗮𝗰𝗸:- https://pdlink.in/4hO7rWY
𝗗𝗮𝘁𝗮 𝗔𝗻𝗮𝗹𝘆𝘁𝗶𝗰𝘀:- https://pdlink.in/4fdWxJB
📈 Start learning today, build job-ready skills, and get placed in leading tech companies.
❤2
✅ Complete SQL Roadmap in 2 Months
Month 1: Strong SQL Foundations
Week 1: Database and query basics
• What SQL does in analytics and business
• Tables, rows, columns
• Primary key and foreign key
• SELECT, DISTINCT
• WHERE with AND, OR, IN, BETWEEN
Outcome: You understand data structure and fetch filtered data.
Week 2: Sorting and aggregation
• ORDER BY and LIMIT
• COUNT, SUM, AVG, MIN, MAX
• GROUP BY
• HAVING vs WHERE
• Use case like total sales per product
Outcome: You summarize data clearly.
Week 3: Joins fundamentals
• INNER JOIN
• LEFT JOIN
• RIGHT JOIN
• Join conditions
• Handling NULL values
Outcome: You combine multiple tables correctly.
Week 4: Joins practice and cleanup
• Duplicate rows after joins
• SELF JOIN with examples
• Data cleaning using SQL
• Daily join-based questions
Outcome: You stop making join mistakes.
Month 2: Analytics-Level SQL
Week 5: Subqueries and CTEs
• Subqueries in WHERE and SELECT
• Correlated subqueries
• Common Table Expressions
• Readability and reuse
Outcome: You write structured queries.
Week 6: Window functions
• ROW_NUMBER, RANK, DENSE_RANK
• PARTITION BY and ORDER BY
• Running totals
• Top N per category problems
Outcome: You solve advanced analytics queries.
Week 7: Date and string analysis
• Date functions for daily, monthly analysis
• Year-over-year and month-over-month logic
• String functions for text cleanup
Outcome: You handle real business datasets.
Week 8: Project and interview prep
• Build a SQL project using sales or HR data
• Write KPI queries
• Explain query logic step by step
• Daily interview questions practice
Outcome: You are SQL interview ready.
Practice platforms
• LeetCode SQL
• HackerRank SQL
• Kaggle datasets
Double Tap ♥️ For Detailed Explanation of Each Topic
Month 1: Strong SQL Foundations
Week 1: Database and query basics
• What SQL does in analytics and business
• Tables, rows, columns
• Primary key and foreign key
• SELECT, DISTINCT
• WHERE with AND, OR, IN, BETWEEN
Outcome: You understand data structure and fetch filtered data.
Week 2: Sorting and aggregation
• ORDER BY and LIMIT
• COUNT, SUM, AVG, MIN, MAX
• GROUP BY
• HAVING vs WHERE
• Use case like total sales per product
Outcome: You summarize data clearly.
Week 3: Joins fundamentals
• INNER JOIN
• LEFT JOIN
• RIGHT JOIN
• Join conditions
• Handling NULL values
Outcome: You combine multiple tables correctly.
Week 4: Joins practice and cleanup
• Duplicate rows after joins
• SELF JOIN with examples
• Data cleaning using SQL
• Daily join-based questions
Outcome: You stop making join mistakes.
Month 2: Analytics-Level SQL
Week 5: Subqueries and CTEs
• Subqueries in WHERE and SELECT
• Correlated subqueries
• Common Table Expressions
• Readability and reuse
Outcome: You write structured queries.
Week 6: Window functions
• ROW_NUMBER, RANK, DENSE_RANK
• PARTITION BY and ORDER BY
• Running totals
• Top N per category problems
Outcome: You solve advanced analytics queries.
Week 7: Date and string analysis
• Date functions for daily, monthly analysis
• Year-over-year and month-over-month logic
• String functions for text cleanup
Outcome: You handle real business datasets.
Week 8: Project and interview prep
• Build a SQL project using sales or HR data
• Write KPI queries
• Explain query logic step by step
• Daily interview questions practice
Outcome: You are SQL interview ready.
Practice platforms
• LeetCode SQL
• HackerRank SQL
• Kaggle datasets
Double Tap ♥️ For Detailed Explanation of Each Topic
❤9
𝗧𝗼𝗽 𝗖𝗲𝗿𝘁𝗶𝗳𝗶𝗰𝗮𝘁𝗶𝗼𝗻𝘀 𝗢𝗳𝗳𝗲𝗿𝗲𝗱 𝗕𝘆 𝗜𝗜𝗧 𝗥𝗼𝗼𝗿𝗸𝗲𝗲 & 𝗜𝗜𝗠 𝗠𝘂𝗺𝗯𝗮𝗶😍
Placement Assistance With 5000+ Companies
Deadline: 25th January 2026
𝗗𝗮𝘁𝗮 𝗦𝗰𝗶𝗲𝗻𝗰𝗲 & 𝗔𝗜 :- https://pdlink.in/49UZfkX
𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗘𝗻𝗴𝗶𝗻𝗲𝗲𝗿𝗶𝗻𝗴:- https://pdlink.in/4pYWCEK
𝗗𝗶𝗴𝗶𝘁𝗮𝗹 𝗠𝗮𝗿𝗸𝗲𝘁𝗶𝗻𝗴 & 𝗔𝗻𝗮𝗹𝘆𝘁𝗶𝗰𝘀 :- https://pdlink.in/4tcUPia
Hurry..Up Only Limited Seats Available
Placement Assistance With 5000+ Companies
Deadline: 25th January 2026
𝗗𝗮𝘁𝗮 𝗦𝗰𝗶𝗲𝗻𝗰𝗲 & 𝗔𝗜 :- https://pdlink.in/49UZfkX
𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗘𝗻𝗴𝗶𝗻𝗲𝗲𝗿𝗶𝗻𝗴:- https://pdlink.in/4pYWCEK
𝗗𝗶𝗴𝗶𝘁𝗮𝗹 𝗠𝗮𝗿𝗸𝗲𝘁𝗶𝗻𝗴 & 𝗔𝗻𝗮𝗹𝘆𝘁𝗶𝗰𝘀 :- https://pdlink.in/4tcUPia
Hurry..Up Only Limited Seats Available
❤1
Glad to see the amazing response on SQL roadmap. ❤️
Today, let's start with the first topic of SQL roadmap:
✅ Introduction to SQL
SQL is the language you use to ask questions from data stored in databases. Companies store all important data in databases. Sales. Users. Payments. Inventory. When a manager asks a question, SQL pulls the answer.
What a database is
A database is an organized storage system for data. Think of it as a digital cupboard where each drawer holds related data. Each drawer is called a table.
What a table is
A table looks like an Excel sheet. It has rows and columns. Each table stores one type of data.
Example table: customers
- Columns
- customer_id
- name
- email
- city
- signup_date
- Rows
- Each row represents one customer
- One row equals one real-world record
How rows and columns work together
- Columns define what kind of data you store
- Rows hold actual values
- All rows follow the same column structure
Example row
- customer_id: 101
- name: Rahul
- email: rahul@gmail.com
- city: Pune
- signup_date: 2024-03-10
Why structure matters
- Clean structure makes data reliable
- Easy to filter, count, and analyze
- Required for accurate reporting
How SQL interacts with tables
- SQL reads data from tables
- SQL filters rows
- SQL selects columns
- SQL summarizes results
Simple SQL example
You ask the database to show names and cities of customers.
What happens behind the scenes
- Database scans the customers table
- Picks name and city columns
- Returns matching rows
Where you will use this daily
- Pull user lists
- Check sales numbers
- Validate data issues
Double Tap ♥️ For More
Today, let's start with the first topic of SQL roadmap:
✅ Introduction to SQL
SQL is the language you use to ask questions from data stored in databases. Companies store all important data in databases. Sales. Users. Payments. Inventory. When a manager asks a question, SQL pulls the answer.
What a database is
A database is an organized storage system for data. Think of it as a digital cupboard where each drawer holds related data. Each drawer is called a table.
What a table is
A table looks like an Excel sheet. It has rows and columns. Each table stores one type of data.
Example table: customers
- Columns
- customer_id
- name
- city
- signup_date
- Rows
- Each row represents one customer
- One row equals one real-world record
How rows and columns work together
- Columns define what kind of data you store
- Rows hold actual values
- All rows follow the same column structure
Example row
- customer_id: 101
- name: Rahul
- email: rahul@gmail.com
- city: Pune
- signup_date: 2024-03-10
Why structure matters
- Clean structure makes data reliable
- Easy to filter, count, and analyze
- Required for accurate reporting
How SQL interacts with tables
- SQL reads data from tables
- SQL filters rows
- SQL selects columns
- SQL summarizes results
Simple SQL example
You ask the database to show names and cities of customers.
SELECT name, city FROM customers;
What happens behind the scenes
- Database scans the customers table
- Picks name and city columns
- Returns matching rows
Where you will use this daily
- Pull user lists
- Check sales numbers
- Validate data issues
Double Tap ♥️ For More
❤9
Glad to see the amazing response on SQL roadmap. ❤️
Today, let's move to the next topic of SQL roadmap:
✅ Database Basics: Primary Key and Foreign Key
Why Keys Exist
Databases store millions of rows. Keys help identify and connect data correctly. Without keys, data breaks fast.
Primary Key
- A primary key uniquely identifies each row in a table
- No two rows share the same primary key
- It never stays empty
Example Table: customers
- Columns: customer_id, name, email, city
- Primary key: customer_id
Why Primary Key Matters
- Prevents duplicate records
- Helps find a row fast
- Keeps data consistent
Foreign Key
- A foreign key links one table to another
- It creates relationships between tables
Example Table: orders
- Columns: order_id, customer_id, order_date, amount
- Foreign key: customer_id
Relationship Explained
- customers.customer_id is primary key
- orders.customer_id is foreign key
- One customer has many orders
Why Foreign Keys Matter
- Enable joins
- Prevent orphan records
- Maintain data integrity
Simple Join Idea
SQL matches customer_id in both tables. This gives customer name with order amount.
Where Beginners Go Wrong
- Using names instead of IDs
- Allowing duplicate primary keys
- Ignoring missing foreign key values
Checkpoint
- You understand primary keys
- You understand foreign keys
- You know how tables connect
Double Tap ♥️ For More
Today, let's move to the next topic of SQL roadmap:
✅ Database Basics: Primary Key and Foreign Key
Why Keys Exist
Databases store millions of rows. Keys help identify and connect data correctly. Without keys, data breaks fast.
Primary Key
- A primary key uniquely identifies each row in a table
- No two rows share the same primary key
- It never stays empty
Example Table: customers
- Columns: customer_id, name, email, city
- Primary key: customer_id
Why Primary Key Matters
- Prevents duplicate records
- Helps find a row fast
- Keeps data consistent
Foreign Key
- A foreign key links one table to another
- It creates relationships between tables
Example Table: orders
- Columns: order_id, customer_id, order_date, amount
- Foreign key: customer_id
Relationship Explained
- customers.customer_id is primary key
- orders.customer_id is foreign key
- One customer has many orders
Why Foreign Keys Matter
- Enable joins
- Prevent orphan records
- Maintain data integrity
Simple Join Idea
SQL matches customer_id in both tables. This gives customer name with order amount.
Where Beginners Go Wrong
- Using names instead of IDs
- Allowing duplicate primary keys
- Ignoring missing foreign key values
Checkpoint
- You understand primary keys
- You understand foreign keys
- You know how tables connect
Double Tap ♥️ For More
❤4
𝗜𝗻𝗱𝗶𝗮’𝘀 𝗕𝗶𝗴𝗴𝗲𝘀𝘁 𝗛𝗮𝗰𝗸𝗮𝘁𝗵𝗼𝗻 | 𝗔𝗜 𝗜𝗺𝗽𝗮𝗰𝘁 𝗕𝘂𝗶𝗹𝗱𝗮𝘁𝗵𝗼𝗻😍
Participate in the national AI hackathon under the India AI Impact Summit 2026
Submission deadline: 5th February 2026
Grand Finale: 16th February 2026, New Delhi
𝗥𝗲𝗴𝗶𝘀𝘁𝗲𝗿 𝗡𝗼𝘄👇:-
https://pdlink.in/4qQfAOM
a flagship initiative of the Government of India 🇮🇳
Participate in the national AI hackathon under the India AI Impact Summit 2026
Submission deadline: 5th February 2026
Grand Finale: 16th February 2026, New Delhi
𝗥𝗲𝗴𝗶𝘀𝘁𝗲𝗿 𝗡𝗼𝘄👇:-
https://pdlink.in/4qQfAOM
a flagship initiative of the Government of India 🇮🇳
Today, let's move to the next topic of SQL Roadmap:
Basic SQL Queries: SELECT, WHERE, Filtering 🖥️
What SELECT Does
- SELECT chooses columns
- You decide what data you want to see
- Database returns only those columns
Example Table: customers
customer_id | name | city | signup_date
101 | Rahul | Pune | 2024-01-15
102 | Neha | Mumbai | 2024-02-10
103 | Amit | Delhi | 2024-03-05
104 | Priya | Pune | 2024-04-20
Basic SELECT
name | city
Rahul | Pune
Neha | Mumbai
Amit | Delhi
Priya | Pune
What Happens
- Database scans all rows
- Returns name and city columns
- No filtering yet
Why SELECT Matters
- Smaller output
- Faster queries
- Clear analysis
What WHERE Does
- WHERE filters rows
- It answers conditions like who, when, how much
Think Like This
- SELECT decides columns
- WHERE decides rows
Basic WHERE Example
name | city
Rahul | Pune
Priya | Pune
Common Operators
- = equal
- != not equal
- > greater than
- < less than
- > =, <=
Example
name | signup_date
Amit | 2024-03-05
Priya | 2024-04-20
Logical Filters
AND
- All conditions must match
Example:
Output
name
Rahul
Priya
OR
- Any condition can match
Example:
Output
name
Rahul
Neha
Priya
IN
- Shortcut for multiple OR conditions
Example:
Output
name
Rahul
Neha
Amit
Priya
BETWEEN
- Filters within a range
- Inclusive of start and end
Example:
Output
name
Rahul
Neha
Amit
Filtering Numbers
Example table: orders
order_id | customer_id | amount | order_date
1 | 101 | 3000 | 2024-01-16
2 | 102 | 6000 | 2024-02-11
3 | 103 | 4000 | 2024-03-06
order_id | amount
2 | 6000
Filtering Text
- Text values go inside quotes
- Case sensitivity depends on database
Filtering NULL Values
- NULL means missing value
- = NULL does not work
Correct way:
Assume city is NULL for customer_id 103
Output
name
Amit
Exclude NULL:
Output
name
Rahul
Neha
Priya
How SELECT and WHERE Work Together
- FROM picks the table
- WHERE filters rows
- SELECT picks columns
- Result is sent back
Real Business Example
- Manager asks for Pune customers with orders above 5,000
- WHERE applies city and amount filters
- SELECT shows required columns
Assume orders table has customer_id 101 with amount 6000
name
Rahul
Common Beginner Mistakes
- Using WHERE before FROM
- Forgetting quotes for text
- Using = NULL
- Writing SELECT * always
Double Tap ♥️ For More
Basic SQL Queries: SELECT, WHERE, Filtering 🖥️
What SELECT Does
- SELECT chooses columns
- You decide what data you want to see
- Database returns only those columns
Example Table: customers
customer_id | name | city | signup_date
101 | Rahul | Pune | 2024-01-15
102 | Neha | Mumbai | 2024-02-10
103 | Amit | Delhi | 2024-03-05
104 | Priya | Pune | 2024-04-20
Basic SELECT
SELECT name, city FROM customers;Output
name | city
Rahul | Pune
Neha | Mumbai
Amit | Delhi
Priya | Pune
What Happens
- Database scans all rows
- Returns name and city columns
- No filtering yet
Why SELECT Matters
- Smaller output
- Faster queries
- Clear analysis
What WHERE Does
- WHERE filters rows
- It answers conditions like who, when, how much
Think Like This
- SELECT decides columns
- WHERE decides rows
Basic WHERE Example
SELECT name, city FROM customers WHERE city = 'Pune';Output
name | city
Rahul | Pune
Priya | Pune
Common Operators
- = equal
- != not equal
- > greater than
- < less than
- > =, <=
Example
SELECT name, signup_date FROM customers WHERE signup_date >= '2024-03-01';Output
name | signup_date
Amit | 2024-03-05
Priya | 2024-04-20
Logical Filters
AND
- All conditions must match
Example:
SELECT name FROM customers WHERE city = 'Pune' AND signup_date >= '2024-01-01';Output
name
Rahul
Priya
OR
- Any condition can match
Example:
SELECT name FROM customers WHERE city = 'Pune' OR city = 'Mumbai';Output
name
Rahul
Neha
Priya
IN
- Shortcut for multiple OR conditions
Example:
SELECT name FROM customers WHERE city IN ('Pune','Mumbai','Delhi');Output
name
Rahul
Neha
Amit
Priya
BETWEEN
- Filters within a range
- Inclusive of start and end
Example:
SELECT name FROM customers WHERE signup_date BETWEEN '2024-01-01' AND '2024-03-31';Output
name
Rahul
Neha
Amit
Filtering Numbers
Example table: orders
order_id | customer_id | amount | order_date
1 | 101 | 3000 | 2024-01-16
2 | 102 | 6000 | 2024-02-11
3 | 103 | 4000 | 2024-03-06
SELECT order_id, amount FROM orders WHERE amount > 5000;Output
order_id | amount
2 | 6000
Filtering Text
- Text values go inside quotes
- Case sensitivity depends on database
Filtering NULL Values
- NULL means missing value
- = NULL does not work
Correct way:
SELECT name FROM customers WHERE city IS NULL;Assume city is NULL for customer_id 103
Output
name
Amit
Exclude NULL:
SELECT name FROM customers WHERE city IS NOT NULL;Output
name
Rahul
Neha
Priya
How SELECT and WHERE Work Together
- FROM picks the table
- WHERE filters rows
- SELECT picks columns
- Result is sent back
Real Business Example
- Manager asks for Pune customers with orders above 5,000
- WHERE applies city and amount filters
- SELECT shows required columns
Assume orders table has customer_id 101 with amount 6000
SELECT name FROM customers WHERE city = 'Pune' AND customer_id IN (SELECT customer_id FROM orders WHERE amount > 5000);Output
name
Rahul
Common Beginner Mistakes
- Using WHERE before FROM
- Forgetting quotes for text
- Using = NULL
- Writing SELECT * always
Double Tap ♥️ For More
❤9
🚀 𝟰 𝗙𝗥𝗘𝗘 𝗧𝗲𝗰𝗵 𝗖𝗼𝘂𝗿𝘀𝗲𝘀 𝗧𝗼 𝗘𝗻𝗿𝗼𝗹𝗹 𝗜𝗻 𝟮𝟬𝟮𝟲 😍
📈 Upgrade your career with in-demand tech skills & FREE certifications!
1️⃣ AI & ML – https://pdlink.in/4bhetTu
2️⃣ Data Analytics – https://pdlink.in/497MMLw
3️⃣ Cloud Computing – https://pdlink.in/3LoutZd
4️⃣ Cyber Security – https://pdlink.in/3N9VOyW
More Courses – https://pdlink.in/4qgtrxU
🎓 100% FREE | Certificates Provided | Learn Anytime, Anywhere
📈 Upgrade your career with in-demand tech skills & FREE certifications!
1️⃣ AI & ML – https://pdlink.in/4bhetTu
2️⃣ Data Analytics – https://pdlink.in/497MMLw
3️⃣ Cloud Computing – https://pdlink.in/3LoutZd
4️⃣ Cyber Security – https://pdlink.in/3N9VOyW
More Courses – https://pdlink.in/4qgtrxU
🎓 100% FREE | Certificates Provided | Learn Anytime, Anywhere
Today, let's move to the next topic of SQL Roadmap:
✅ Basic SQL Queries: ORDER BY and LIMIT - Sorting and Controlling Output
Why Sorting
- Raw data has no order
- Sorted data reveals patterns
- Analysts sort data in almost every query
What ORDER BY Does
- ORDER BY sorts result rows
- Sorting happens after filtering
- Default order is ascending
Basic Syntax
Example Table: customers
| customer_id | name | city | signup_date |
Sort by Name
- Rows sorted alphabetically by name (A to Z)
Descending Order
- Use DESC for reverse order
Use Cases
- Latest users first
- Highest sales first
- Recent transactions on top
Sorting Numbers
Sorting by Multiple Columns
- First column sorts primary
- Second column breaks ties
LIMIT Explained
- LIMIT restricts number of rows returned
- Used to preview data
- Used to get top results
Top N Queries
Filtering + Sorting + Limiting Together
Execution order:
1. FROM
2. WHERE
3. ORDER BY
4. LIMIT
Double Tap ♥️ For More
✅ Basic SQL Queries: ORDER BY and LIMIT - Sorting and Controlling Output
Why Sorting
- Raw data has no order
- Sorted data reveals patterns
- Analysts sort data in almost every query
What ORDER BY Does
- ORDER BY sorts result rows
- Sorting happens after filtering
- Default order is ascending
Basic Syntax
SELECT column_name
FROM table_name
ORDER BY column_name;
Example Table: customers
| customer_id | name | city | signup_date |
Sort by Name
SELECT name, city
FROM customers
ORDER BY name;
- Rows sorted alphabetically by name (A to Z)
Descending Order
- Use DESC for reverse order
SELECT name, signup_date
FROM customers
ORDER BY signup_date DESC;
Use Cases
- Latest users first
- Highest sales first
- Recent transactions on top
Sorting Numbers
SELECT order_id, amount
FROM orders
ORDER BY amount DESC;
Sorting by Multiple Columns
- First column sorts primary
- Second column breaks ties
SELECT city, signup_date
FROM customers
ORDER BY city, signup_date DESC;
LIMIT Explained
- LIMIT restricts number of rows returned
- Used to preview data
- Used to get top results
SELECT name, signup_date
FROM customers
ORDER BY signup_date DESC
LIMIT 5;
Top N Queries
SELECT name, amount
FROM orders
ORDER BY amount DESC
LIMIT 10;
Filtering + Sorting + Limiting Together
Execution order:
1. FROM
2. WHERE
3. ORDER BY
4. LIMIT
SELECT name, amount
FROM orders
WHERE amount > 5000
ORDER BY amount DESC
LIMIT 3;
Double Tap ♥️ For More
❤7