Data Analytics
109K subscribers
133 photos
2 files
837 links
Perfect channel to learn Data Analytics

Learn SQL, Python, Alteryx, Tableau, Power BI and many more

For Promotions: @coderfun @love_data
Download Telegram
In a table, what does a “row” represent?
Anonymous Quiz
12%
A. A column name
73%
B. A single record
8%
C. A database
7%
D. A query
2
Which of the following is an example of a relational database?
Anonymous Quiz
8%
A. Excel
10%
B. MongoDB
81%
C. MySQL
1%
D. Notepad
Which SQL command is used to fetch data from a table?
Anonymous Quiz
10%
A. INSERT
1%
B. DELETE
83%
C. SELECT
6%
D. UPDATE
2🔥1
Now, let’s move to the next topic in SQL Roadmap

✍️ SELECT WHERE

This is the most important beginner topic 👇

🧠 1. SELECT Statement

• SELECT is used to retrieve data from a table

👉 Basic Syntax
SELECT column_name FROM table_name;

👉 Example
SELECT name FROM employees;

Returns only the name column

👉 Select Multiple Columns
SELECT name, salary FROM employees;

👉 Select All Columns
SELECT * FROM employees;

🎯 2. WHERE Clause (Filtering Data)

• WHERE is used to filter records based on conditions

👉 Syntax
SELECT * FROM table_name
WHERE condition;

👉 Example
SELECT * FROM employees
WHERE salary > 50000;

Returns employees earning more than 50k

3. Operators You Must Know

🔹 Comparison Operators
• = (equal)
• > (greater than)
• < (less than)
• >= , <=
• != or <> (not equal)

🔹 Logical Operators
• AND → both conditions true
• OR → any condition true
• NOT → reverse condition

👉 Example
SELECT * FROM employees
WHERE department = 'IT' AND salary > 50000;

💡 4. Real-Life Thinking

Instead of memorizing, think like this:

👉 “What data do I need?”
👉 “From which table?”
👉 “What condition?”

Example:
“Show all HR employees earning less than 40k”

SELECT * FROM employees
WHERE department = 'HR' AND salary < 40000;

🎯 5. Practice Tasks
1. Show all employees with salary > 30k
2. Show employees from IT department
3. Show employees with salary between 40k–80k
4. Display only names of HR employees
5. Combine conditions using AND / OR

🔥 Practice Tasks Solution

1. Show all employees with salary > 30k
SELECT * FROM employees
WHERE salary > 30000;

2. Show employees from IT department
SELECT * FROM employees
WHERE department = 'IT';

3. Show employees with salary between 40k–80k
SELECT * FROM employees
WHERE salary BETWEEN 40000 AND 80000;

👉 Alternative:
SELECT * FROM employees
WHERE salary >= 40000 AND salary <= 80000;

4. Display only names of HR employees
SELECT name FROM employees
WHERE department = 'HR';

5. Combine conditions using AND / OR
SELECT * FROM employees
WHERE department = 'IT' AND salary > 50000;

👉 OR example:
SELECT * FROM employees
WHERE department = 'HR' OR salary < 30000;

Double Tap ❤️ For More
121👍1
What will this query return?

SELECT name FROM employees;
Anonymous Quiz
8%
A. All columns
88%
B. Only names of employees
1%
C. Only salaries
3%
D. Table structure
2
What does this query do?

SELECT * FROM employees WHERE department = 'HR';
Anonymous Quiz
6%
A. Shows all employees
90%
B. Shows only HR employees
2%
C. Deletes HR employees
2%
D. Updates HR employees
2🥰1
Which operator is used to combine multiple conditions?
Anonymous Quiz
51%
A. JOIN
43%
B. AND
3%
C. SELECT
2%
D. ORDER
3
Now, Let’s move to the next topic of the SQL Roadmap:

ORDER BY LIMIT

🧠 1. ORDER BY (Sorting Data)

ORDER BY is used to sort your result.

👉 Syntax

SELECT column_name FROM table_name
ORDER BY column_name;


🔹 Ascending Order (Default)

SELECT * FROM employees
ORDER BY salary ASC;


Lowest salary → highest

🔹 Descending Order

SELECT * FROM employees
ORDER BY salary DESC;


Highest salary → lowest

💡 2. Sorting Multiple Columns

SELECT * FROM employees
ORDER BY department ASC, salary DESC;


👉 First sorts by department
👉 Then salary within each department

🎯 3. LIMIT (Control Output Size)

LIMIT is used to restrict the number of rows.

👉 Syntax

SELECT * FROM table_name
LIMIT number;


👉 Example

SELECT * FROM employees
LIMIT 5;


Returns only the first 5 rows

4. Using ORDER BY LIMIT

👉 Top 5 highest salaries

SELECT * FROM employees
ORDER BY salary DESC
LIMIT 5;


👉 Lowest 3 salaries

SELECT * FROM employees
ORDER BY salary ASC
LIMIT 3;


🎯 5. Practice Tasks
1. Show all employees sorted by salary (ascending)
2. Show all employees sorted by salary (descending)
3. Get top 3 highest paid employees
4. Get lowest 2 salary employees
5. Sort employees by department and salary

Practice Task Solution

1. Show all employees sorted by salary (ascending)

SELECT * FROM employees
ORDER BY salary ASC;


2. Show all employees sorted by salary (descending)

SELECT * FROM employees
ORDER BY salary DESC;


3. Get top 3 highest paid employees

SELECT * FROM employees
ORDER BY salary DESC
LIMIT 3;


4. Get lowest 2 salary employees

SELECT * FROM employees
ORDER BY salary ASC
LIMIT 2;


5. Sort employees by department and salary

SELECT * FROM employees
ORDER BY department ASC, salary DESC;


👉 First sorts by department
👉 Then highest salary inside each department

Mini Challenge 🔥

👉 Get the 2nd highest salary employee.

Mini Challenge Solution 🔥

Method 1 (Using LIMIT + OFFSET)

SELECT * FROM employees
ORDER BY salary DESC
LIMIT 1 OFFSET 1;


Method 2 (Alternative way)

SELECT * FROM employees
ORDER BY salary DESC
LIMIT 1, 1;


🔥 Pro Tip:
If you understand OFFSET → you can get Top N, 2nd highest, 3rd highest easily.

Double Tap ❤️ For More
23
🔥 Let’s move to the next topic in the SQL Roadmap:

GROUP BY & Aggregation Functions

🧠 1. What is GROUP BY?

GROUP BY is used to group rows with same values

👉 It helps you summarize data

💡 Example Table: employees
name department salary
Amit IT 60000
Neha HR 40000
Ravi IT 70000
Sara HR 50000

👉 Without GROUP BY

SELECT AVG(salary) FROM employees;

Gives overall average

👉 With GROUP BY

SELECT department, AVG(salary)
FROM employees
GROUP BY department;

Gives average salary per department

2. Aggregation Functions

These functions perform calculations on data

🔹 COUNT() → number of rows

SELECT COUNT() FROM employees;

🔹 SUM() → total

SELECT SUM(salary) FROM employees;

🔹 AVG() → average

SELECT AVG(salary) FROM employees;

🔹 MIN() → smallest value

SELECT MIN(salary) FROM employees;

🔹 MAX() → largest value

SELECT MAX(salary) FROM employees;

🎯 3. GROUP BY + Aggregation

👉 Count employees in each department

SELECT department, COUNT()
FROM employees
GROUP BY department;

👉 Total salary per department

SELECT department, SUM(salary)
FROM employees
GROUP BY department;

👉 Highest salary per department

SELECT department, MAX(salary)
FROM employees
GROUP BY department;

🚨 4. Important Rule (Interview Favorite)

👉 Every column in SELECT must be:
- Either inside GROUP BY
- Or used with aggregation function

Wrong:

SELECT name, AVG(salary) FROM employees;

Correct:

SELECT department, AVG(salary)
FROM employees
GROUP BY department;

🎯 5. Practice Tasks
1. Count total employees
2. Find total salary of all employees
3. Find average salary per department
4. Find maximum salary in each department
5. Count employees in each department

Practice Task Solution

1. Count total employees

SELECT COUNT() FROM employees;


2. Find total salary of all employees

SELECT SUM(salary) FROM employees;


3. Find average salary per department

SELECT department, AVG(salary)
FROM employees
GROUP BY department;


4. Find maximum salary in each department

SELECT department, MAX(salary)
FROM employees
GROUP BY department;


5. Count employees in each department

SELECT department, COUNT()
FROM employees
GROUP BY department;

Mini Challenge 🔥

👉 Find department with highest average salary

Mini Challenge Solution 🔥

SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
ORDER BY avg_salary DESC
LIMIT 1;

Double Tap ❤️ For More
22
Now, let’s move to the next topic of SQL Roadmap:

HAVING Clause

🧠 1. What is HAVING?

HAVING is used to filter grouped data

👉 Think like this:
- WHERE → filters rows (before grouping)
- HAVING → filters groups (after grouping)

2. WHERE vs HAVING

Works on
- WHERE: Rows
- HAVING: Groups

Used with
- WHERE: SELECT
- HAVING: GROUP BY

Can use aggregates?
- WHERE: No
- HAVING: Yes

💡 3. Basic Syntax

SELECT column, AGG_FUNCTION(column)
FROM table_name
GROUP BY column
HAVING condition;

🎯 4. Examples (Very Important)

👉 Example 1: Departments with more than 2 employees

SELECT department, COUNT() AS total_emp
FROM employees
GROUP BY department
HAVING COUNT() > 2;

👉 Example 2: Departments with average salary > 50k

SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;

5. WHERE + HAVING Together

SELECT department, COUNT() AS total_emp
FROM employees
WHERE salary > 30000
GROUP BY department
HAVING COUNT() > 2;

👉 Step-by-step:
1. WHERE → filters employees with salary > 30k
2. GROUP BY → groups by department
3. HAVING → keeps only groups with > 2 employees

🎯 6. Practice Tasks
1. Find departments having more than 3 employees
2. Find departments with average salary > 60k
3. Count employees per department where salary > 40k
4. Show departments with total salary > 1,00,000
5. Find departments with minimum salary > 30k

Mini Challenge 🔥

👉 Find departments having more than 2 employees AND avg salary > 50k

Double Tap ❤️ For Practice Task Solution
18
Business Intelligence (BI) Acronyms You Should Know 📊💡

BI → Business Intelligence
ETL → Extract, Transform, Load
ELT → Extract, Load, Transform
DWH → Data Warehouse
OLAP → Online Analytical Processing
OLTP → Online Transaction Processing
KPI → Key Performance Indicator
SLA → Service Level Agreement
SCD → Slowly Changing Dimension
CDC → Change Data Capture
MDM → Master Data Management
EAV → Entity Attribute Value
FACT → Fact Table
DIM → Dimension Table
STAR → Star Schema
SNOWFLAKE → Snowflake Schema
MTD → Month To Date
QTD → Quarter To Date
YTD → Year To Date
MoM → Month over Month
YoY → Year over Year
ROI → Return on Investment
TAT → Turn Around Time

💡Don’t just expand acronyms — explain where they’re used (ETL in pipelines, KPIs in dashboards, OLAP in analysis).

💬 Tap ❤️ for more!
18👍2🔥1🥰1
Which clause is used before GROUP BY?
Anonymous Quiz
28%
A. HAVING
19%
B. ORDER BY
50%
C. WHERE
2%
D. LIMIT
What will this query return?

SELECT department, COUNT(*) FROM employees GROUP BY department HAVING COUNT(*) > 2;
Anonymous Quiz
82%
Departments with more than 2 employees
13%
Departments with less than 2 employees
4%
All departments
1%
Highest salary
5
What does this query return?

SELECT department, AVG(salary) FROM employees GROUP BY department HAVING AVG(salary) > 50000;
Anonymous Quiz
5%
All departments
92%
Departments with avg salary > 50k
3%
Max salary
0%
Min salary
8
🔥Now, let’s move to the most important SQL topic — JOINS 💯🔥

🧠 1. What is a JOIN?

JOIN is used to combine data from multiple tables

👉 If data is stored in different tables → JOIN helps you connect them

📊 Example Tables

👨‍💼 employees

emp_id name dept_id

1 Amit 101
2 Neha 102
3 Ravi 101

🏢 departments

dept_id dept_name

101 IT
102 HR

🔗 2. INNER JOIN (Most Used 🔥)

👉 Returns only matching records

SELECT e.name, d.dept_name
FROM employees e
INNER JOIN departments d
ON e.dept_id = d.dept_id;

Only employees with valid department

⬅️ 3. LEFT JOIN

👉 Returns all records from left table + matched from right

SELECT e.name, d.dept_name
FROM employees e
LEFT JOIN departments d
ON e.dept_id = d.dept_id;

Even if department is missing → employee will still show

➡️ 4. RIGHT JOIN

👉 Returns all records from right table + matched from left

SELECT e.name, d.dept_name
FROM employees e
RIGHT JOIN departments d
ON e.dept_id = d.dept_id;

🔄 5. FULL JOIN

👉 Returns all records from both tables

SELECT e.name, d.dept_name
FROM employees e
FULL JOIN departments d
ON e.dept_id = d.dept_id;

(Note: Not supported in MySQL directly — use UNION instead)

6. Quick Summary

• INNER -> Only matching rows
• LEFT -> All left + matched right
• RIGHT -> All right + matched left
• FULL -> Everything

🎯 7. Practice Tasks

1. Get employee name with department name

2. Show all employees even if no department

3. Show all departments even if no employees

4. Find employees without department

5. Count employees per department (using JOIN)

🔥 Practice Task Solutions 👇

1. Get employee name with department name (INNER JOIN)

SELECT e.name, d.dept_name
FROM employees e
INNER JOIN departments d
ON e.dept_id = d.dept_id;

2. Show all employees even if no department (LEFT JOIN)

SELECT e.name, d.dept_name
FROM employees e
LEFT JOIN departments d
ON e.dept_id = d.dept_id;

3. Show all departments even if no employees (RIGHT JOIN)

SELECT e.name, d.dept_name
FROM employees e
RIGHT JOIN departments d
ON e.dept_id = d.dept_id;

👉 (Alternative using LEFT JOIN — interview friendly)

SELECT e.name, d.dept_name
FROM departments d
LEFT JOIN employees e
ON e.dept_id = d.dept_id;

4. Find employees without department

SELECT e.name
FROM employees e
LEFT JOIN departments d
ON e.dept_id = d.dept_id
WHERE d.dept_id IS NULL;

5. Count employees per department (using JOIN)

SELECT d.dept_name, COUNT(e.emp_id) AS total_emp
FROM departments d
LEFT JOIN employees e
ON d.dept_id = e.dept_id
GROUP BY d.dept_name;

Mini Challenge 🔥

👉 Find departments with no employees

Mini Challenge Solution 👇

SELECT d.dept_name  
FROM departments d
LEFT JOIN employees e
ON d.dept_id = e.dept_id
WHERE e.emp_id IS NULL;


Double Tap ❤️ For More
23👍1
1
Find departments with NO employees — which is correct?
Anonymous Quiz
12%
SELECT d.name FROM departments d INNER JOIN employees e ON d.dept_id = e.dept_id;
77%
SELECT d.name FROM departments d LEFT JOIN employees e ON d.dept_id = e.dept_id WHERE e.id IS NULL;
3%
SELECT * FROM employees;
8%
SELECT COUNT(*) FROM departments;