@Codingdidi
9.18K subscribers
26 photos
7 videos
47 files
260 links
Free learning Resources For Data Analysts, Data science, ML, AI, GEN AI and Job updates, career growth, Tech updates
Download Telegram
THOMSON REUTERS is Hiring for DATA ENGINEER

Role:- DATA ENGINEER

Qualifications:- GRADUATION

Experience:- Fresher's and Experienced

Mode:- WORK FROM OFFICE

CTC:- 15 LPA

Location:- BANGALORE, KARNATAKA & HYDERABAD, TELANGANA

Apply Now:- https://careers.thomsonreuters.com/us/en/job/THTTRUUSJREQ185931EXTERNALENUS/Data-Engineer
๐Ÿ‘1
1. Handling Missing Values
- Kaggle Tutorial: [Handling Missing Values](https://www.kaggle.com/learn/data-cleaning)
- YouTube Video: ["Dealing with Missing Data in Python"](https://www.youtube.com/watch?v=wvsE8jm1GzE) by Data School
- Blog Post: [Complete Guide to Handling Missing Data in Python](https://towardsdatascience.com/complete-guide-to-handling-missing-data-in-python-95c1221fba0e)

---

2. Data Normalization and Standardization
- Blog Post: [Normalization vs. Standardization Explained](https://machinelearningmastery.com/normalize-standardize-machine-learning-data-python/)
- Interactive Course: [Feature Scaling and Normalization (DataCamp)](https://www.datacamp.com/)
- YouTube Video: ["Feature Scaling in Machine Learning"](https://www.youtube.com/watch?v=UvK0B5JZpM8) by StatQuest

---

3. Removing Duplicates
- Official Pandas Documentation: [Pandas drop_duplicates()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop_duplicates.html)
- Video: ["Removing Duplicates in Python"](https://www.youtube.com/watch?v=QHRrl4Il2Og) by Corey Schafer
- Blog Post: [How to Remove Duplicates Using Python](https://realpython.com/python-data-cleaning-numpy-pandas/)

---

4. Handling Outliers
- Blog Post: [5 Methods to Deal with Outliers in Data](https://towardsdatascience.com/handling-outliers-in-your-data-7cde6b4d76bb)
- Video: ["Identifying and Handling Outliers in Python"](https://www.youtube.com/watch?v=TN-xVNUcDk8) by Krish Naik
- Jupyter Notebook Example: [Outlier Detection with Python](https://github.com/datascience-projects)

---

5. Merging and Joining Datasets
- Pandas Documentation: [Merging, Joining, and Concatenating](https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html)
- Video: ["Pandas Merging and Joining"](https://www.youtube.com/watch?v=g7n1MKo7WgQ) by Corey Schafer
- Interactive Course: [Data Manipulation with Pandas (DataCamp)](https://www.datacamp.com/)

---

6. Identifying and Correcting Data Inconsistencies
- Blog Post: [Python for Data Cleaning](https://towardsdatascience.com/python-for-data-cleaning-a-step-by-step-guide-to-deal-with-data-inconsistencies-c08f06fca8c8)
- Video Tutorial: ["Python for Data Cleaning"](https://www.youtube.com/watch?v=B_L0v1xRb6E)
- Project-Based Learning: [Data Cleaning in Python Mini-Projects](https://github.com/topics/data-cleaning)

---

๐Ÿ’ก Pro Tip: Practice real-world data cleaning tasks using open datasets on platforms like:
- [Kaggle Datasets](https://www.kaggle.com/datasets)
- [Data World](https://data.world/)
- [UCI Machine Learning Repository](https://archive.ics.uci.edu/ml/index.php)
โค3๐Ÿ‘3
๐‘๐ž๐ฏ๐จ๐ฅ๐ฎ๐ญ - ๐–๐จ๐ซ๐ค ๐…๐ซ๐จ๐ฆ ๐‡๐จ๐ฆ๐ž
Position: Business Analyst
Qualification: Bachelor's/ Master's Degree
Salary: 5 - 8 LPA (Expected)
Experienc๏ปฟe: Freshers/ Experienced
Location: Work From Home (Remote)

๐Ÿ“ŒApply Now: https://www.revolut.com/careers/position/75445311-c0e0-4b6d-90d4-d4a23226831c/
๐Ÿ‘1
100 Data science concepts.pdf
2.9 MB
100 Data science concept
โค2
python cheetsheet.pdf
2.4 MB
*Python*
โœ… High-Level & Easy to Learn โ€“ Simple syntax, readable code, and beginner-friendly.

โœ… Interpreted Language โ€“ No need for compilation; executed line by line.

โœ… Dynamically Typed โ€“ No need to declare variable types; Python determines them at runtime.

โœ… Versatile & Multi-Purpose โ€“ Used in Web Development, Data Science, AI, ML, Automation, Cybersecurity, and more.

โœ… Extensive Libraries & Frameworks โ€“ Supports TensorFlow, NumPy, Pandas, Flask, Django, OpenCV, etc.

โœ… Object-Oriented & Functional โ€“ Supports both OOP and functional programming paradigms.

โœ… Cross-Platform โ€“ Runs on Windows, macOS, Linux, and even mobile devices.

โœ… Large Community & Support โ€“ One of the most widely used languages with extensive documentation and forums.

โœ… Automation & Scripting โ€“ Ideal for task automation, web scraping, and workflow management.

โœ… Strong Integration โ€“ Works with C, C++, Java, SQL, and various APIs.
๐Ÿ‘4
Learn SQL from basic to advanced level in 30 days

Week 1: SQL Basics

Day 1: Introduction to SQL and Relational Databases

Overview of SQL Syntax

Setting up a Database (MySQL, PostgreSQL, or SQL Server)


Day 2: Data Types (Numeric, String, Date, etc.)

Writing Basic SQL Queries:

SELECT, FROM

Day 3: WHERE Clause for Filtering Data

Using Logical Operators:

AND, OR, NOT

Day 4: Sorting Data: ORDER BY

Limiting Results: LIMIT and OFFSET

Understanding DISTINCT

Day 5: Aggregate Functions:

COUNT, SUM, AVG, MIN, MAX


Day 6: Grouping Data: GROUP BY and HAVING

Combining Filters with Aggregations


Day 7: Review Week 1 Topics with Hands-On Practice

Solve SQL Exercises on platforms like HackerRank, LeetCode, or W3Schools


Week 2: Intermediate SQL

Day 8: SQL JOINS:

INNER JOIN, LEFT JOIN

Day 9: SQL JOINS Continued: RIGHT JOIN, FULL OUTER JOIN, SELF JOIN

Day 10: Working with NULL Values

Using Conditional Logic with CASE Statements

Day 11: Subqueries: Simple Subqueries (Single-row and Multi-row)

Correlated Subqueries

Day 12: String Functions:

CONCAT, SUBSTRING, LENGTH, REPLACE

Day 13: Date and Time Functions: NOW, CURDATE, DATEDIFF, DATEADD

Day 14: Combining Results: UNION, UNION ALL, INTERSECT, EXCEPT

Review Week 2 Topics and Practice

Week 3: Advanced SQL

Day 15: Common Table Expressions (CTEs)

WITH Clauses and Recursive Queries

Day 16: Window Functions:

ROW_NUMBER, RANK, DENSE_RANK, NTILE

Day 17: More Window Functions:

LEAD, LAG, FIRST_VALUE, LAST_VALUE


Day 18: Creating and Managing Views

Temporary Tables and Table Variables

Day 19: Transactions and ACID Properties

Working with Indexes for Query Optimization

Day 20: Error Handling in SQL

Writing Dynamic SQL Queries


Day 21: Review Week 3 Topics with Complex Query Practice

Solve Intermediate to Advanced SQL Challenges



Week 4: Database Management and Advanced Applications

Day 22: Database Design and Normalization:

1NF, 2NF, 3NF


Day 23: Constraints in SQL:
PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, DEFAULT


Day 24: Creating and Managing Indexes

Understanding Query Execution Plans

Day 25: Backup and Restore Strategies in SQL

Role-Based Permissions

Day 26: Pivoting and Unpivoting Data

Working with JSON and XML in SQL

Day 27: Writing Stored Procedures and Functions

Automating Processes with Triggers

Day 28: Integrating SQL with Other Tools (e.g., Python, Power BI, Tableau)

SQL in Big Data: Introduction to NoSQL

Day 29: Query Performance Tuning:

Tips and Tricks to Optimize SQL Queries


Day 30: Final Review of All Topics

Attempt SQL Projects or Case Studies (e.g., analyzing sales data, building a reporting dashboard)

Since SQL is one of the most essential skill for data analysts, I have decided to teach each topic daily in this channel for free.

Like this post if you want me to continue this SQL series ๐Ÿ‘โ™ฅ๏ธ


Hope it helps:)
๐Ÿ‘21โค7๐Ÿ‘1
Should I continue this SQL series on a daily basis?
Anonymous Poll
97%
YES
3%
NO
๐Ÿ‘4
DA charts.pdf
607.4 KB
๐Ÿš€ Master Data Visualization & Charts for Data Analysis!

Want to make your data analysis more insightful with stunning visualizations? ๐Ÿ“Šโœจ Learn how to use charts, graphs, and dashboards to uncover hidden patterns and tell compelling data stories!

Turn your raw data into clear, meaningful, and powerful visual insights today! ๐Ÿ”ฅ
๐Ÿ”ฅ4๐Ÿ‘2
Day 1: Introduction to SQL and Relational Databases

Welcome to Day 1 of your SQL learning journey! ๐Ÿš€

SQL (Structured Query Language) is the language of databases and is widely used for managing and analyzing data. Whether you're aiming for a career in Data Science, Data Analysis, Web Development, or Finance, SQL is an essential skill to master.

---

๐Ÿ“Œ What is SQL?
SQL stands for Structured Query Language and is used to communicate with databases. It helps you store, retrieve, manipulate, and manage data in a structured way.

Imagine a library database where details of books (title, author, genre, availability) are stored in tables. With SQL, you can:
โœ… Find a book by its title
โœ… Get a list of all books by a specific author
โœ… Check how many books are available in a genre
โœ… Add new books to the library collection
โœ… Delete outdated records

---

๐Ÿ“Œ What is a Database?
A database is an organized collection of data that allows easy access, management, and updating.

There are two main types of databases:
1๏ธโƒฃ Relational Databases (RDBMS): Data is stored in tables (like Excel). Examples: MySQL, PostgreSQL, SQL Server, SQLite.
2๏ธโƒฃ Non-Relational Databases (NoSQL): Data is stored in key-value pairs, JSON, or documents. Examples: MongoDB, Firebase.

SQL works with Relational Databases (RDBMS).

---
๐Ÿ“Œ What is a Table?
A table is like a spreadsheet in Excel, with rows and columns.

๐Ÿ“Œ Example: A simple "Students" table

| Student_ID | Name | Age | Grade |
|------------|-------|-----|--------|
| 1 | Alex | 18 | A |
| 2 | Emma | 19 | B |
| 3 | John | 18 | A |

Each row represents a student, and each column stores a specific type of data (ID, Name, Age, Grade).

---

๐Ÿ“Œ SQL Commands Overview
SQL has different types of commands to manage data:

๐Ÿ”น Data Query Language (DQL) โ€“ Used for fetching data
๐Ÿ”ธ SELECT โ€“ Retrieve data from tables

๐Ÿ”น Data Manipulation Language (DML) โ€“ Used for modifying data
๐Ÿ”ธ INSERT โ€“ Add new data
๐Ÿ”ธ UPDATE โ€“ Modify existing data
๐Ÿ”ธ DELETE โ€“ Remove data

๐Ÿ”น Data Definition Language (DDL) โ€“ Used for creating and modifying tables
๐Ÿ”ธ CREATE TABLE โ€“ Create a new table
๐Ÿ”ธ ALTER TABLE โ€“ Modify table structure
๐Ÿ”ธ DROP TABLE โ€“ Delete a table

๐Ÿ”น Data Control Language (DCL) โ€“ Used for user permissions
๐Ÿ”ธ GRANT โ€“ Give permissions
๐Ÿ”ธ REVOKE โ€“ Remove permissions

๐Ÿ”น Transaction Control Language (TCL) โ€“ Used for managing transactions
๐Ÿ”ธ COMMIT โ€“ Save changes permanently
๐Ÿ”ธ ROLLBACK โ€“ Undo changes

---

๐Ÿ“Œ Setting Up a Database
To practice SQL, you need a database environment. You can use:

1๏ธโƒฃ Online SQL Editors โ€“ No installation needed
- [SQL Fiddle](http://sqlfiddle.com/)
- [W3Schools SQL Editor](https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all)

2๏ธโƒฃ Install a Database Software
- MySQL (Popular for beginners) โ€“ [Download](https://www.mysql.com/downloads/)
- PostgreSQL (Advanced features) โ€“ [Download](https://www.postgresql.org/download/)
- SQL Server (Used in enterprises) โ€“ [Download](https://www.microsoft.com/en-us/sql-server/sql-server-downloads)

---

๐Ÿ“Œ Writing Your First SQL Query
Letโ€™s retrieve all data from a Students table using the SELECT statement.

SELECT * FROM Students;

Explanation:
- SELECT โ†’ Tells SQL to retrieve data
- * โ†’ Means "all columns"
- FROM Students โ†’ Specifies the table name

---
๐ŸŽฏ Task for Today
1๏ธโƒฃ Understand the basic SQL commands mentioned above.
2๏ธโƒฃ Try an online SQL editor and execute SELECT * FROM Students;
3๏ธโƒฃ Install MySQL or PostgreSQL (optional, but recommended).

---

๐Ÿ“Œ Thatโ€™s it for Day 1! Tomorrow, weโ€™ll learn about SQL Data Types and start writing basic queries. ๐Ÿš€

๐Ÿ’ก Like & comment if you're excited to continue this series! ๐Ÿ˜Šโค๏ธ
๐Ÿ‘15๐Ÿ”ฅ5
Day 2: SQL Data Types and Writing Basic Queries

Welcome to Day 2 of your SQL learning journey! ๐ŸŽ‰

Today, weโ€™ll cover two important topics:
โœ… Data Types in SQL โ€“ Understanding different types of data in a database
โœ… Writing Basic SQL Queries โ€“ Learning how to retrieve data using SQL

By the end of this lesson, youโ€™ll be able to create a table and write your first SQL query to fetch data! ๐Ÿš€

---

๐Ÿ“Œ What Are Data Types in SQL?
A data type defines the kind of data a column can store. Each column in a table must have a specific data type to ensure that data is stored correctly.

For example, a "Name" column should store text, while an "Age" column should store numbers.

---

๐Ÿ“Œ Common SQL Data Types (MySQL, PostgreSQL, SQL Server)

1๏ธโƒฃ Numeric Data Types (Used for storing numbers)
| Data Type | Description | Example |
|-----------|------------|---------|
| INT | Stores whole numbers | 25, 100, -50 |
| DECIMAL(p, s) | Stores decimal numbers with precision | 12.34, 99.99 |
| FLOAT / REAL | Stores floating-point numbers | 1.23, 3.14 |

๐Ÿ”น Example: If youโ€™re storing student ages, use INT. If youโ€™re storing bank balances, use DECIMAL.

---

2๏ธโƒฃ String (Text) Data Types
| Data Type | Description | Example |
|-----------|------------|---------|
| CHAR(n) | Fixed-length string (n characters) | 'A', 'USA' |
| VARCHAR(n) | Variable-length string (up to n characters) | 'John Doe', 'Hello World' |
| TEXT | Large text data | 'This is a long description...' |

๐Ÿ”น Example: A column storing names should be VARCHAR(50), meaning it can hold up to 50 characters.

---

3๏ธโƒฃ Date and Time Data Types
| Data Type | Description | Example |
|-----------|------------|---------|
| DATE | Stores only the date (YYYY-MM-DD) | '2025-02-02' |
| TIME | Stores only the time (HH:MM:SS) | '14:30:00' |
| DATETIME | Stores both date and time | '2025-02-02 14:30:00' |
| TIMESTAMP | Stores date & time (used for logging) | '2025-02-02 14:30:00' |

๐Ÿ”น Example: If youโ€™re storing a studentโ€™s birth date, use DATE. If youโ€™re storing when a student logged in, use DATETIME.

---

๐Ÿ“Œ Creating a Table in SQL
Now that we understand data types, letโ€™s create a table for our students.

CREATE TABLE Students (
Student_ID INT PRIMARY KEY,
Name VARCHAR(50),
Age INT,
Grade CHAR(1),
Enrollment_Date DATE
);


๐Ÿ”น Explanation:
- CREATE TABLE Students โ†’ Creates a table named Students
- Student_ID INT PRIMARY KEY โ†’ Unique ID for each student
- Name VARCHAR(50) โ†’ Stores student names (up to 50 characters)
- Age INT โ†’ Stores student ages
- Grade CHAR(1) โ†’ Stores single-character grades (A, B, C...)
- Enrollment_Date DATE โ†’ Stores the date of enrollment

---

๐Ÿ“Œ Writing Basic SQL Queries
Now, letโ€™s insert some data and retrieve it using SQL queries.

1๏ธโƒฃ Inserting Data into a Table
INSERT INTO Students (Student_ID, Name, Age, Grade, Enrollment_Date)
VALUES (1, 'John Doe', 18, 'A', '2023-09-01');


๐Ÿ”น Explanation:
- INSERT INTO Students โ†’ Adds a new record to the Students table
- (Student_ID, Name, Age, Grade, Enrollment_Date) โ†’ Specifies the columns
- VALUES (1, 'John Doe', 18, 'A', '2023-09-01') โ†’ Provides the values

Now, letโ€™s add a few more students:

INSERT INTO Students (Student_ID, Name, Age, Grade, Enrollment_Date) 
VALUES
(2, 'Emma Smith', 19, 'B', '2022-08-15'),
(3, 'Alex Brown', 20, 'A', '2021-07-10'),
(4, 'Sophia Johnson', 18, 'C', '2023-01-20');


---

2๏ธโƒฃ Retrieving Data Using `SELECT` Statement
To see all student records, use:

SELECT * FROM Students;


๐Ÿ”น Explanation:
- SELECT * โ†’ Selects all columns
- FROM Students โ†’ Specifies the Students table

๐Ÿ”น Output:
| Student_ID | Name | Age | Grade | Enrollment_Date |
|------------|--------------|-----|-------|----------------|
| 1 | John Doe | 18 | A | 2023-09-01 |
| 2 | Emma Smith | 19 | B | 2022-08-15 |
| 3 | Alex Brown | 20 | A | 2021-07-10 |
| 4 | Sophia Johnson| 18 | C | 2023-01-20 |

---
๐Ÿ‘5โค1
3๏ธโƒฃ Retrieving Specific Columns
If you only want to see the Name and Age, run:

SELECT Name, Age FROM Students;


๐Ÿ”น Output:
| Name | Age |
|--------------|----|
| John Doe | 18 |
| Emma Smith | 19 |
| Alex Brown | 20 |
| Sophia Johnson| 18 |

---

4๏ธโƒฃ Filtering Data Using `WHERE` Clause
Find students who are 18 years old:

SELECT * FROM Students WHERE Age = 18;


๐Ÿ”น Output:
| Student_ID | Name | Age | Grade | Enrollment_Date |
|------------|--------------|-----|-------|----------------|
| 1 | John Doe | 18 | A | 2023-09-01 |
| 4 | Sophia Johnson| 18 | C | 2023-01-20 |

---

5๏ธโƒฃ Using Conditions (`AND`, `OR`)
Find students who are 18 years old and have Grade A:

SELECT * FROM Students WHERE Age = 18 AND Grade = 'A';


Find students who are either 18 or 19 years old:

SELECT * FROM Students WHERE Age = 18 OR Age = 19;


---

๐ŸŽฏ Task for Today
1๏ธโƒฃ Understand SQL data types and their usage.
2๏ธโƒฃ Create a Students table in an SQL editor.
3๏ธโƒฃ Insert at least 5 records into your table.
4๏ธโƒฃ Write `SELECT` queries to retrieve:
โœ… All students
โœ… Students aged 18
โœ… Only Name and Age

---

๐Ÿ“Œ Thatโ€™s it for Day 2! Tomorrow, weโ€™ll learn about the WHERE clause and logical operators for filtering data efficiently. ๐Ÿš€

๐Ÿ’ก Like & comment if you're excited for Day 3! ๐Ÿ˜Šโค๏ธ
๐Ÿ‘4โค3
Day 3: Filtering Data Using the `WHERE` Clause and Logical Operators (`AND`, `OR`, `NOT`)

Welcome to Day 3 of your SQL journey! ๐ŸŽ‰

Yesterday, we learned about SQL data types and basic queries using `SELECT`. Today, we will take it further and learn how to filter data using the WHERE clause and logical operators (AND, OR, NOT).

By the end of this lesson, youโ€™ll be able to retrieve specific data based on conditions! ๐Ÿš€

---

๐Ÿ“Œ What is the `WHERE` Clause?

In real-world databases, tables contain thousands or even millions of records. If you only want to find specific data, you need a filtering method.

The WHERE clause allows us to retrieve only the records that match certain conditions instead of displaying the entire table.

๐Ÿ“– Syntax:
SELECT column1, column2, ... 
FROM table_name
WHERE condition;

---

๐Ÿ“Œ Using `WHERE` to Filter Data
Letโ€™s take an example. We have a Students table with the following records:

| Student_ID | Name | Age | Grade | Enrollment_Date |
|------------|--------------|-----|-------|----------------|
| 1 | John Doe | 18 | A | 2023-09-01 |
| 2 | Emma Smith | 19 | B | 2022-08-15 |
| 3 | Alex Brown | 20 | A | 2021-07-10 |
| 4 | Sophia Johnson| 18 | C | 2023-01-20 |

---

1๏ธโƒฃ Filtering Data with `WHERE` Clause

Example 1: Find all students who are 18 years old
SELECT * FROM Students WHERE Age = 18;

๐Ÿ”น Output:
| Student_ID | Name | Age | Grade | Enrollment_Date |
|------------|--------------|-----|-------|----------------|
| 1 | John Doe | 18 | A | 2023-09-01 |
| 4 | Sophia Johnson| 18 | C | 2023-01-20 |

โœ… Explanation:
- The query only selects students where Age = 18.

---

2๏ธโƒฃ Using `AND` Operator

The `AND` operator allows us to filter based on multiple conditions.

Example 2: Find students who are 18 years old AND have Grade A
SELECT * FROM Students WHERE Age = 18 AND Grade = 'A';


๐Ÿ”น Output:
| Student_ID | Name | Age | Grade | Enrollment_Date |
|------------|--------|-----|-------|----------------|
| 1 | John Doe | 18 | A | 2023-09-01 |

โœ… Explanation:
- The query filters students who are both 18 years old AND have Grade A.

---

3๏ธโƒฃ Using `OR` Operator

The `OR` operator allows us to filter if at least one condition is met.

Example 3: Find students who are either 18 OR 19 years old
SELECT * FROM Students WHERE Age = 18 OR Age = 19;


๐Ÿ”น Output:
| Student_ID | Name | Age | Grade | Enrollment_Date |
|------------|--------------|-----|-------|----------------|
| 1 | John Doe | 18 | A | 2023-09-01 |
| 2 | Emma Smith | 19 | B | 2022-08-15 |
| 4 | Sophia Johnson| 18 | C | 2023-01-20 |

โœ… Explanation:
- The query selects students who are either 18 OR 19 years old.

---

4๏ธโƒฃ Using `NOT` Operator

The `NOT` operator helps us find records that do NOT match a certain condition.

Example 4: Find students who are NOT 18 years old
SELECT * FROM Students WHERE NOT Age = 18;


๐Ÿ”น Output:
| Student_ID | Name | Age | Grade | Enrollment_Date |
|------------|-----------|-----|-------|----------------|
| 2 | Emma Smith | 19 | B | 2022-08-15 |
| 3 | Alex Brown | 20 | A | 2021-07-10 |

โœ… Explanation:
- The query excludes students who are 18 years old.

---

๐Ÿ“Œ Combining `AND`, `OR`, and `NOT`

Example 5: Find students who are either Grade A OR Grade B, but NOT 18 years old
SELECT * FROM Students WHERE (Grade = 'A' OR Grade = 'B') AND NOT Age = 18;


๐Ÿ”น Output:
| Student_ID | Name | Age | Grade | Enrollment_Date |
|------------|-----------|-----|-------|----------------|
| 2 | Emma Smith | 19 | B | 2022-08-15 |
| 3 | Alex Brown | 20 | A | 2021-07-10 |

โœ… Explanation:
- The query selects students who have Grade A OR B.
- But it excludes students who are 18 years old.

---

๐Ÿ“Œ Using Comparison Operators with `WHERE`
๐Ÿ‘2โค1
| Operator | Meaning |
|----------|---------|
| = | Equals |
| != or <> | Not Equal |
| > | Greater than |
| < | Less than |
| >= | Greater than or equal to |
| <= | Less than or equal to |

Example 6: Find students older than 18 years
SELECT * FROM Students WHERE Age > 18;

๐Ÿ”น Output:
| Student_ID | Name | Age | Grade | Enrollment_Date |
|------------|-----------|-----|-------|----------------|
| 2 | Emma Smith | 19 | B | 2022-08-15 |
| 3 | Alex Brown | 20 | A | 2021-07-10 |

โœ… Explanation:
- The query selects students who are older than 18.

---

## ๐ŸŽฏ Task for Today
โœ… Write a query to find students who are exactly 19 years old.
โœ… Write a query to find students who are younger than 19.
โœ… Write a query to find students who are either 18 OR 20 years old.
โœ… Write a query to find students who are not Grade A.
โœ… Write a query to find students who are older than 18 AND have Grade B.

---

๐Ÿ” Summary
โœ… WHERE filters records based on a condition.
โœ… AND requires both conditions to be met.
โœ… OR requires at least one condition to be met.
โœ… NOT excludes specific records.
โœ… We can combine multiple conditions using AND, OR, and NOT.

---

๐Ÿ“Œ Thatโ€™s it for Day 3! Tomorrow, weโ€™ll learn about sorting data using `ORDER BY`, limiting results with `LIMIT`, and removing duplicates using `DISTINCT`. ๐Ÿš€


Share with Credit: https://t.me/codingdidi
๐Ÿ’ก Like & comment if you're excited for Day 4! ๐Ÿ˜Šโค๏ธ
๐Ÿ‘4
This is how you can learn everything:

1. 25 minutes of focused learning
2. 5 minutes break
3. 25 minutes of focused learning
4. 25 minutes break minimum
5. Optionally go back to step 1

You can complete this cycle 2 times max per day, and it works wonders.
๐Ÿ‘4๐Ÿ”ฅ1
Hi, all
Your inputs are helping me make this SQL series more informative.
Do comments your inputs. โœ…

Happy Learning ๐Ÿ˜Š
Day 4: Sorting Data (`ORDER BY`), Limiting Results (`LIMIT`, `OFFSET`), and Removing Duplicates (`DISTINCT`)

Welcome to Day 4 of learning SQL! ๐ŸŽ‰

Yesterday, we learned how to filter data using `WHERE` and logical operators (AND, OR, NOT). Today, weโ€™ll take it a step further and learn how to:
โœ… Sort data using `ORDER BY`
โœ… Limit the number of results using `LIMIT` and `OFFSET`
โœ… Remove duplicate values using `DISTINCT`

By the end of this lesson, youโ€™ll be able to organize and refine your query results efficiently! ๐Ÿš€

---

๐Ÿ“Œ Sorting Data Using `ORDER BY`

๐Ÿ”น Why Do We Need Sorting?
When you query a table, the results might appear in random order. If you want your data to be more organized and meaningful, you need to sort it based on a specific column.

๐Ÿ“– Syntax:
SELECT column1, column2, ...
FROM table_name
ORDER BY column_name ASC/DESC;

- ASC (Ascending Order) โ†’ Default, sorts from smallest to largest (A-Z, 0-9).
- DESC (Descending Order) โ†’ Sorts from largest to smallest (Z-A, 9-0).

---

1๏ธโƒฃ Sorting in Ascending Order (`ASC`)
Letโ€™s use a Students table as an example:

| Student_ID | Name | Age | Grade | Enrollment_Date |
|------------|--------------|-----|-------|----------------|
| 1 | John Doe | 18 | A | 2023-09-01 |
| 2 | Emma Smith | 19 | B | 2022-08-15 |
| 3 | Alex Brown | 20 | A | 2021-07-10 |
| 4 | Sophia Johnson| 18 | C | 2023-01-20 |

Example 1: Sort students by Age (Ascending)
SELECT * FROM Students ORDER BY Age ASC;


๐Ÿ”น Output:
| Student_ID | Name | Age | Grade | Enrollment_Date |
|------------|--------------|-----|-------|----------------|
| 1 | John Doe | 18 | A | 2023-09-01 |
| 4 | Sophia Johnson| 18 | C | 2023-01-20 |
| 2 | Emma Smith | 19 | B | 2022-08-15 |
| 3 | Alex Brown | 20 | A | 2021-07-10 |

โœ… Explanation:
- The records are sorted from youngest (18) to oldest (20).

---

2๏ธโƒฃ Sorting in Descending Order (`DESC`)
Example 2: Sort students by Age (Descending)
SELECT * FROM Students ORDER BY Age DESC;


๐Ÿ”น Output:
| Student_ID | Name | Age | Grade | Enrollment_Date |
|------------|--------------|-----|-------|----------------|
| 3 | Alex Brown | 20 | A | 2021-07-10 |
| 2 | Emma Smith | 19 | B | 2022-08-15 |
| 1 | John Doe | 18 | A | 2023-09-01 |
| 4 | Sophia Johnson| 18 | C | 2023-01-20 |

โœ… Explanation:
- The records are sorted from oldest (20) to youngest (18).

---

3๏ธโƒฃ Sorting by Multiple Columns
If two students have the same age, you can sort further by another column, like Grade.

Example 3: Sort students by Age (Ascending), then by Grade (Ascending)
SELECT * FROM Students ORDER BY Age ASC, Grade ASC;


๐Ÿ”น Output:
| Student_ID | Name | Age | Grade | Enrollment_Date |
|------------|--------------|-----|-------|----------------|
| 4 | Sophia Johnson| 18 | C | 2023-01-20 |
| 1 | John Doe | 18 | A | 2023-09-01 |
| 2 | Emma Smith | 19 | B | 2022-08-15 |
| 3 | Alex Brown | 20 | A | 2021-07-10 |

โœ… Explanation:
- Students are sorted by Age (smallest first).
- If two students have the same age, they are sorted by Grade (A before C).

---

๐Ÿ“Œ Limiting Results Using `LIMIT` and `OFFSET`

๐Ÿ”น Why Do We Need `LIMIT`?
Imagine you have 1 million records, but you only need to see the top 5 results. The LIMIT clause helps restrict the number of rows returned by a query.

๐Ÿ“– Syntax:
SELECT column1, column2, ... 
FROM table_name
ORDER BY column_name
LIMIT number;


Example 4: Get the Top 3 Youngest Students
SELECT * FROM Students ORDER BY Age ASC LIMIT 3;
๐Ÿ‘1
๐Ÿ”น Output:
| Student_ID | Name | Age | Grade | Enrollment_Date |
|------------|--------------|-----|-------|----------------|
| 4 | Sophia Johnson| 18 | C | 2023-01-20 |
| 1 | John Doe | 18 | A | 2023-09-01 |
| 2 | Emma Smith | 19 | B | 2022-08-15 |

โœ… Explanation:
- We only get 3 results instead of the full table.

---

๐Ÿ“Œ Skipping Rows Using `OFFSET`

OFFSET is used with `LIMIT` to skip a specific number of rows before returning results.

๐Ÿ“– Syntax:
SELECT column1, column2, ... 
FROM table_name
ORDER BY column_name
LIMIT number OFFSET number;


Example 5: Get the second and third youngest students (Skip the first one)
SELECT * FROM Students ORDER BY Age ASC LIMIT 2 OFFSET 1;


๐Ÿ”น Output:
| Student_ID | Name | Age | Grade | Enrollment_Date |
|------------|-----------|-----|-------|----------------|
| 1 | John Doe | 18 | A | 2023-09-01 |
| 2 | Emma Smith| 19 | B | 2022-08-15 |

โœ… Explanation:
- The first student (Sophia Johnson, Age 18) is skipped, and the next 2 students are returned.

---

๐Ÿ“Œ Removing Duplicates Using `DISTINCT`

๐Ÿ”น Why Do We Need `DISTINCT`?
Sometimes, a column contains repeated values, and you only need unique values.

๐Ÿ“– Syntax:
SELECT DISTINCT column_name FROM table_name;


Example 6: Get All Unique Grades
SELECT DISTINCT Grade FROM Students;


๐Ÿ”น Output:
| Grade |
|-------|
| A |
| B |
| C |

โœ… Explanation:
- The query removes duplicate values from the Grade column.

---

๐ŸŽฏ Task for Today
โœ… Write a query to get the top 5 oldest students.
โœ… Write a query to list unique enrollment dates.
โœ… Write a query to get the second highest age student.

---

๐Ÿ” Summary
โœ… ORDER BY sorts data (Ascending/Descending).
โœ… LIMIT restricts the number of rows returned.
โœ… OFFSET skips a specific number of rows.
โœ… DISTINCT removes duplicate values.

Tomorrow, we will learn SQL Aggregate Functions (`COUNT`, `SUM`, `AVG`, `MIN`, `MAX`). ๐Ÿš€


Share with Credit: https://t.me/codingdidi
๐Ÿ’ก Like & Comment if you're ready for Day 5! ๐Ÿ˜Šโค๏ธ
๐Ÿ‘6
Day 5: SQL Aggregate Functions (`COUNT`, `SUM`, `AVG`, `MIN`, `MAX`)

Welcome to Day 5 of learning SQL! ๐ŸŽ‰

So far, weโ€™ve learned how to filter, sort, limit, and remove duplicates in our SQL queries. Today, we will take it one step further by learning Aggregate Functions in SQL.

๐Ÿ”น What Are Aggregate Functions?
Aggregate functions perform calculations on a group of rows and return a single value. These functions are useful when we want to summarize data, such as:
โœ… Counting the number of records (COUNT)
โœ… Finding the total sum (SUM)
โœ… Calculating the average (AVG)
โœ… Finding the minimum value (MIN)
โœ… Finding the maximum value (MAX)

Letโ€™s go step by step! ๐Ÿš€

---

๐Ÿ“Œ `COUNT()` โ€“ Counting the Number of Rows

๐Ÿ”น Why Do We Need `COUNT()`?
We use COUNT() to find how many rows exist in a table or how many times a specific value appears.

๐Ÿ“– Syntax:
SELECT COUNT(column_name) FROM table_name;

- COUNT(column_name): Counts non-null values in a specific column.
- COUNT(*): Counts all rows, including those with NULL values.

---

Example 1: Count the Total Number of Students
Consider this Students table:

| Student_ID | Name | Age | Grade | Fees_Paid |
|------------|---------------|-----|-------|----------|
| 1 | John Doe | 18 | A | 1000 |
| 2 | Emma Smith | 19 | B | 1200 |
| 3 | Alex Brown | 20 | A | 900 |
| 4 | Sophia Johnson | 18 | C | NULL |

SELECT COUNT(*) FROM Students;


๐Ÿ”น Output:
| COUNT(*) |
|----------|
| 4 |

โœ… Explanation:
- This query counts all rows in the table.

---

Example 2: Count the Number of Students Who Paid Fees
SELECT COUNT(Fees_Paid) FROM Students;


๐Ÿ”น Output:
| COUNT(Fees_Paid) |
|------------------|
| 3 |

โœ… Explanation:
- This query excludes NULL values in Fees_Paid.

---

๐Ÿ“Œ `SUM()` โ€“ Adding Up Values

๐Ÿ”น Why Do We Need `SUM()`?
SUM() calculates the total sum of numeric values in a column.

๐Ÿ“– Syntax:
SELECT SUM(column_name) FROM table_name;


---

Example 3: Find the Total Fees Paid
SELECT SUM(Fees_Paid) FROM Students;


๐Ÿ”น Output:
| SUM(Fees_Paid) |
|---------------|
| 3100 |

โœ… Explanation:
- The sum of 1000 + 1200 + 900 is 3100 (ignores NULL values).

---

๐Ÿ“Œ `AVG()` โ€“ Finding the Average

๐Ÿ”น Why Do We Need `AVG()`?
AVG() calculates the average (mean) value of a numeric column.
๐Ÿ“– Syntax:
SELECT AVG(column_name) FROM table_name;


---

Example 4: Find the Average Fees Paid
SELECT AVG(Fees_Paid) FROM Students;


๐Ÿ”น Output:
| AVG(Fees_Paid) |
|---------------|
| 1033.33 |

โœ… Explanation:
- The average is (1000 + 1200 + 900) รท 3 = 1033.33 (ignores NULL values).

---

๐Ÿ“Œ `MIN()` โ€“ Finding the Minimum Value

๐Ÿ”น Why Do We Need `MIN()`?
MIN() returns the smallest value in a column.

๐Ÿ“– Syntax:
SELECT MIN(column_name) FROM table_name;


---

Example 5: Find the Youngest Studentโ€™s Age
SELECT MIN(Age) FROM Students;


๐Ÿ”น Output:
| MIN(Age) |
|---------|
| 18 |

โœ… Explanation:
- The minimum age in the table is 18.

---

๐Ÿ“Œ `MAX()` โ€“ Finding the Maximum Value

๐Ÿ”น Why Do We Need `MAX()`?
MAX() returns the largest value in a column.

๐Ÿ“– Syntax:
SELECT MAX(column_name) FROM table_name;


---

Example 6: Find the Oldest Studentโ€™s Age
SELECT MAX(Age) FROM Students;


๐Ÿ”น Output:
| MAX(Age) |
|---------|
| 20 |

โœ… Explanation:
- The maximum age in the table is 20.

---

๐Ÿ“Œ Combining Aggregate Functions

We can use multiple aggregate functions in a single query.

Example 7: Get All Summary Data
SELECT 
COUNT(*) AS Total_Students,
SUM(Fees_Paid) AS Total_Fees,
AVG(Fees_Paid) AS Average_Fees,
MIN(Age) AS Youngest_Age,
MAX(Age) AS Oldest_Age
FROM Students;


๐Ÿ”น Output:
| Total_Students | Total_Fees | Average_Fees | Youngest_Age | Oldest_Age |
|---------------|-----------|-------------|-------------|-----------|
| 4 | 3100 | 1033.33 | 18 | 20 |

โœ… Explanation:
- This query provides a complete summary of the student data.

---
โค1
๐ŸŽฏ Task for Today
โœ… Count the number of students in Grade A.
โœ… Find the total fees paid by students in Grade B.
โœ… Get the average age of students.
โœ… Find the highest and lowest fees paid.

---

๐Ÿ” Summary
โœ… COUNT() โ†’ Counts the number of rows.
โœ… SUM() โ†’ Adds up values.
โœ… AVG() โ†’ Finds the average.
โœ… MIN() โ†’ Finds the smallest value.
โœ… MAX() โ†’ Finds the largest value.

Tomorrow, we will learn about SQL GROUP BY & HAVING. ๐Ÿš€

Share with Credit: https://t.me/codingdidi
๐Ÿ’ก Like & Comment if you're ready for Day 6! ๐Ÿ˜Šโค๏ธ
๐Ÿ‘4
Day 6: SQL `GROUP BY` and `HAVING` โ€“ Grouping and Filtering Data

Welcome to Day 6 of learning SQL! ๐ŸŽ‰

Yesterday, we learned about aggregate functions (COUNT, SUM, AVG, MIN, MAX) to summarize data. But what if we want to apply these functions to different groups of data? ๐Ÿค”

For example, instead of finding the total fees paid by all students, what if we want to find the total fees paid per grade? Thatโ€™s where GROUP BY comes in! ๐Ÿš€

---

๐Ÿ”น Why Do We Need `GROUP BY`?
GROUP BY helps us group rows with the same values in a column and then apply aggregate functions to each group separately.

๐Ÿ“– Syntax:
SELECT column_name, aggregate_function(column_name)
FROM table_name
GROUP BY column_name;

- column_name โ†’ The column used for grouping.
- aggregate_function(column_name) โ†’ Applies an aggregate function (e.g., SUM, AVG, COUNT, etc.) to each group.

---

๐Ÿ“Œ `GROUP BY` Example โ€“ Total Fees Paid Per Grade
We will use the same Students table:

| Student_ID | Name | Age | Grade | Fees_Paid |
|------------|---------------|-----|-------|----------|
| 1 | John Doe | 18 | A | 1000 |
| 2 | Emma Smith | 19 | B | 1200 |
| 3 | Alex Brown | 20 | A | 900 |
| 4 | Sophia Johnson | 18 | C | NULL |
| 5 | Liam Davis | 19 | B | 1100 |

---

๐Ÿ”ธ Find the Total Fees Paid Per Grade
SELECT Grade, SUM(Fees_Paid) AS Total_Fees
FROM Students
GROUP BY Grade;


๐Ÿ”น Output:
| Grade | Total_Fees |
|-------|-----------|
| A | 1900 |
| B | 2300 |
| C | NULL |

โœ… Explanation:
- The query groups students by Grade.
- Then it calculates the total fees paid for each grade using SUM(Fees_Paid).
- Grade C shows NULL because Sophia hasn't paid fees (NULL values are ignored in SUM()).

---

๐Ÿ”ธ Count the Number of Students in Each Grade
SELECT Grade, COUNT(*) AS Total_Students
FROM Students
GROUP BY Grade;


๐Ÿ”น Output:
| Grade | Total_Students |
|-------|---------------|
| A | 2 |
| B | 2 |
| C | 1 |

โœ… Explanation:
- COUNT(*) counts all students in each grade.
- GROUP BY Grade groups them by grade before counting.

---

๐Ÿ“Œ `HAVING` Clause โ€“ Filtering Groups

The WHERE clause cannot be used with aggregate functions because it filters individual rows before grouping.

๐Ÿšจ Use `HAVING` to filter groups after aggregation!

๐Ÿ“– Syntax:
SELECT column_name, aggregate_function(column_name)
FROM table_name
GROUP BY column_name
HAVING condition;


---

๐Ÿ”ธ Find Grades Where Total Fees Paid is More Than 2000
SELECT Grade, SUM(Fees_Paid) AS Total_Fees
FROM Students
GROUP BY Grade
HAVING SUM(Fees_Paid) > 2000;


๐Ÿ”น Output:
| Grade | Total_Fees |
|-------|-----------|
| B | 2300 |

โœ… Explanation:
- The query groups students by Grade and calculates total fees per grade.
- HAVING SUM(Fees_Paid) > 2000 filters only groups where the total fees paid exceeds 2000.
- Grade A (1900) is excluded, but Grade B (2300) is included.

---

๐Ÿ”ธ Find Grades with More Than 1 Student
SELECT Grade, COUNT(*) AS Total_Students
FROM Students
GROUP BY Grade
HAVING COUNT(*) > 1;


๐Ÿ”น Output:
| Grade | Total_Students |
|-------|---------------|
| A | 2 |
| B | 2 |

โœ… Explanation:
- COUNT(*) counts the number of students per grade.
- HAVING COUNT(*) > 1 filters out grades that have only 1 student (Grade C).

---

๐Ÿ“Œ `WHERE` vs. `HAVING` โ€“ Key Differences

| Feature | WHERE | HAVING |
|----------|--------|---------|
| Filters individual rows before grouping | โœ… Yes | โŒ No |
| Filters groups after aggregation | โŒ No | โœ… Yes |
| Works with aggregate functions (SUM, COUNT, etc.) | โŒ No | โœ… Yes |

---

๐ŸŽฏ Task for Today
โœ… Find the total fees paid per grade but only show grades where fees are above 2000.
โœ… Count the number of students per age and show only ages where students are more than 1.
โœ… Find the average fees per grade and show only grades where the average fee is above 1000.

---
โค4๐Ÿ‘3