Data Science & Machine Learning
Join this channel to learn data science, artificial intelligence and machine learning with funny quizzes, interesting projects and amazing resources for free For collaborations: @love_data
Show more📈 Analytical overview of Telegram channel Data Science & Machine Learning
Channel Data Science & Machine Learning (@datasciencefun) in the English language segment is an active participant. Currently, the community unites 77 745 subscribers, ranking 1 977 in the Education category and 3 944 in the India region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 77 745 subscribers.
According to the latest data from 05 October, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 346 over the last 30 days and by 39 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 2.06%. Within the first 24 hours after publication, content typically collects 0.92% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 603 views. Within the first day, a publication typically gains 712 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 3.
- Thematic interests: Content is focused on key topics such as learning, accuracy, distribution, panda, dataset.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Join this channel to learn data science, artificial intelligence and machine learning with funny quizzes, interesting projects and amazing resources for free
For collaborations: @love_data”
Thanks to the high frequency of updates (latest data received on 06 October, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Education category.
SELECT customer_id, product_id, quantity, price,
quantity * price AS transaction_value
FROM sales
ORDER BY transaction_value DESC;
This can help with:
• Finding high-value transactions
• Identifying important customers
• Investigating unusually large purchases
• Preparing data for further analysis
🔹 Common Mistakes
Mistake 1 — Forgetting DESC
If you want the highest salary first: ORDER BY salary DESC; Not ORDER BY salary;
Mistake 2 — Wrong column
Make sure the column used for sorting actually represents what you want to analyze.
Mistake 3 — Incorrect multiple-column ordering
ORDER BY department, salary DESC; does NOT mean both columns are descending. It means: department → ASC, salary → DESC
If you want both descending: ORDER BY department DESC, salary DESC;
Mistake 4 — Confusing WHERE and ORDER BY
WHERE filters rows. ORDER BY sorts rows. They perform different jobs.
🔹 Interview Questions
1. What is ORDER BY?
ORDER BY sorts query results based on one or more columns.
2. What is the default sorting order?
Ascending order (ASC) is generally the default.
3. How do you find the highest salary?
SELECT * FROM employees ORDER BY salary DESC;
4. Can you sort using multiple columns?
Yes. ORDER BY department ASC, salary DESC;
5. What is the difference between ASC and DESC?
ASC sorts from low to high or A–Z. DESC sorts from high to low or Z–A.
🎯 Practice Questions
1. Write a query to display all products from the cheapest to the most expensive.
2. Write a query to display employees from the highest salary to the lowest salary.
3. Write a query to display customers alphabetically by name.
4. Write a query to sort sales by date, showing the newest sales first.
5. Write a query to sort employees by department alphabetically and salary from highest to lowest within each department.
🎯 Key Takeaways
• ORDER BY sorts query results
• ASC means ascending
• DESC means descending
• Ascending is generally the default
• You can sort numbers, text and dates
• You can sort using multiple columns
• WHERE filters data; ORDER BY sorts data
• ORDER BY is especially useful when analyzing rankings and top/bottom records
👉 Double Tap ❤️ For More
-----
1.16 ₽ · /balance_helpSELECT column1, column2
FROM table_name
ORDER BY column_name;
By default, SQL sorts in ascending order.
SELECT *
FROM employees
ORDER BY salary;
This generally returns employees from the lowest salary to the highest salary.
🔹 ASC — Ascending Order
ASC means ascending.
SELECT *
FROM employees
ORDER BY salary ASC;
For numbers: 10000, 25000, 40000, 75000, 100000
For text: Amazon, Apple, Google, Microsoft
For dates: 2024-01-01, 2024-05-15, 2024-12-20, 2025-03-10
ASC is usually the default, so ORDER BY salary; is equivalent to ORDER BY salary ASC;
🔹 DESC — Descending Order
DESC means descending.
SELECT *
FROM employees
ORDER BY salary DESC;
Example: 100000, 75000, 40000, 25000, 10000
This is especially useful when you want to find:
• Highest-paid employees
• Top-selling products
• Most expensive products
• Most recent transactions
• Highest-performing regions
🔹 Sorting Text
You can sort text columns alphabetically.
SELECT employee_name, department
FROM employees
ORDER BY employee_name ASC;
SELECT employee_name, department
FROM employees
ORDER BY employee_name DESC;
🔹 Sorting Dates
To find the most recent transactions:
SELECT transaction_id, transaction_date, amount
FROM transactions
ORDER BY transaction_date DESC;
To see transactions from oldest to newest:
SELECT transaction_id, transaction_date, amount
FROM transactions
ORDER BY transaction_date ASC;
🔹 Sorting by Multiple Columns
This is very important. Suppose you want to sort employees:
1. By department
2. Within each department, by salary from highest to lowest
SELECT employee_name, department, salary
FROM employees
ORDER BY department ASC, salary DESC;
SQL first sorts by department. When multiple rows have the same department, it then uses salary to determine their order.
Example:
Finance 90000
Finance 70000
Finance 50000
HR 85000
HR 60000
IT 120000
IT 95000
🔹 ORDER BY with Calculations
You can also sort using an expression.
SELECT product_name, quantity, price,
quantity * price AS total_value
FROM products
ORDER BY quantity * price DESC;
You can also use the alias in many SQL databases:
SELECT product_name,
quantity * price AS total_value
FROM products
ORDER BY total_value DESC;
🔹 ORDER BY with DISTINCT
SELECT DISTINCT department
FROM employees
ORDER BY department ASC;
This returns each department once and sorts them alphabetically.
🔹 ORDER BY and NULL Values
NULL represents a missing or unknown value. The position of NULL values when using ORDER BY can vary between SQL databases.
Some databases also support explicit control such as:
ORDER BY salary ASC NULLS LAST;
or
ORDER BY salary DESC NULLS FIRST;
Always check the syntax supported by your SQL database.
🔹 ORDER BY with WHERE
WHERE filters the rows first, and ORDER BY sorts the resulting rows.
SELECT employee_name, salary
FROM employees
WHERE department = 'IT'
ORDER BY salary DESC;WHERE city = Pune;
Correct:
WHERE city = 'Pune';
❌ Mistake 3: Using AND when you mean OR
Incorrect if you want either city:
WHERE city = 'Pune'
AND city = 'Mumbai';
A single city value cannot normally be both at the same time.
Correct:
WHERE city = 'Pune'
OR city = 'Mumbai';
Or:
WHERE city IN ('Pune', 'Mumbai');
❌ Mistake 4: Forgetting parentheses
For complex conditions, use parentheses:
WHERE
(city = 'Pune' OR city = 'Mumbai')
AND age > 30;
❌ Mistake 5: Assuming BETWEEN excludes the boundaries
BETWEEN is generally inclusive.
🔹 34. Interview Questions
💡 What is the purpose of WHERE?
WHERE filters rows based on a condition.
💡 What is the difference between WHERE and SELECT?
SELECT → Determines what columns/expressions appear in the result.
WHERE → Determines which rows are included.
💡 How do you check for NULL?
Use:
IS NULL
or:
IS NOT NULL
💡 What is the difference between IN and OR?
IN provides a concise way to test whether a value matches any value in a list.
💡 Is BETWEEN inclusive?
Yes, BETWEEN generally includes both boundary values.
🎯 Practice Questions
Q1. Write a query to retrieve employees whose salary is greater than 50,000.
Q2. Write a query to retrieve customers from Pune or Mumbai.
Q3. Write a query to retrieve products priced between 1,000 and 5,000.
Q4. Write a query to retrieve customers whose phone number is missing.
Q5. Write a query to retrieve orders where the status is Success and the amount is greater than 10,000.
🎯 Key Takeaways
✅ WHERE is used to filter rows.
✅ = checks equality.
✅ <> and != can be used for not equal.
✅ AND requires all specified conditions to be true.
✅ OR requires at least one condition to be true.
✅ IN is useful for matching multiple values.
✅ BETWEEN is useful for ranges and is generally inclusive.
✅ LIKE is used for pattern matching.
✅ % represents a sequence of characters.
✅ _ represents one character.
✅ Use IS NULL and IS NOT NULL for NULL values.
✅ Parentheses make complex AND/OR logic clearer and safer.
🧭 Double Tap ❤️ For More
-----
3 ₽ · /balance_helpSELECT *
FROM customers
WHERE city IN ('Pune', 'Mumbai', 'Delhi');
IN checks whether a value belongs to a specified list.
🔹 23. NOT IN
You can also exclude multiple values.
SELECT *
FROM customers
WHERE city NOT IN ('Pune', 'Mumbai');
This returns customers whose city isn't Pune or Mumbai.
🔹 24. LIKE
LIKE is used for pattern matching.
Suppose we want names beginning with A.
SELECT *
FROM customers
WHERE name LIKE 'A%';
Here:
% → Any sequence of characters
So this could match:
Alice
Amit
Ananya
🔹 25. LIKE with %
Example:
SELECT *
FROM customers
WHERE name LIKE '%an%';
This searches for names containing the sequence an.
The exact behavior can depend on database collation and case-sensitivity settings.
🔹 26. LIKE with _
The underscore _ generally represents exactly one character.
Example:
SELECT *
FROM products
WHERE product_code LIKE 'A_1';
This could match:
A11
AB1
AX1
But not:
A123
A1
because _ represents one character.
🔹 27. NULL Values
One of the most important concepts in SQL filtering is NULL.
NULL generally means:
Missing, unknown, or unavailable value.It does not mean: Zero Empty string False For example: customer_id name phone 101 Alice 9999999999 102 Bob NULL Bob's phone number is missing or unknown. 🔹 28. Checking for NULL You should not normally write:
WHERE phone = NULL
Instead, use:
SELECT *
FROM customers
WHERE phone IS NULL;
To find records where the value exists:
SELECT *
FROM customers
WHERE phone IS NOT NULL;
This is extremely important in Data Analytics.
🔹 29. WHERE and NULL Logic
Suppose:
WHERE salary > 50000
What happens when salary is NULL?
The condition isn't considered true.
The row won't be returned.
SQL uses three-valued logic involving:
TRUE
FALSE
UNKNOWN
This is one reason NULL handling requires special attention.
🔹 30. WHERE with SELECT
WHERE works together with SELECT.
Example:
SELECT
customer_id,
name,
city
FROM customers
WHERE city = 'Pune';
The query:
1.
Retrieves selected columns
2.
From the customers table
3.
Keeps only rows satisfying the condition
🔹 31. WHERE in Real-World Data Science
Imagine a transaction database containing millions of records.
A Data Scientist needs:
Successful transactions above ₹10,000 from January 2026 onward.A query might look like:
SELECT
transaction_id,
customer_id,
transaction_date,
amount
FROM transactions
WHERE status = 'Success'
AND amount > 10000
AND transaction_date >= '2026-01-01';
This is much more efficient for analysis than extracting the entire table and filtering everything later in Python.
🔹 32. WHERE Before Python
A common Data Science workflow is:
Database → SQL → Filter/Transform → Python → Analysis → Model
For example:
SELECT
customer_id,
amount,
transaction_date
FROM transactions
WHERE status = 'Success';
Then load the result into Pandas:
import pandas as pd
df = pd.read_sql(query, connection)
SQL handles the database-side filtering, while Python can then handle deeper analysis.
🔹 33. Common Mistakes
❌ Mistake 1: Using = with NULL
Incorrect:
WHERE phone = NULL;
Correct:
WHERE phone IS NULL;SELECT *
FROM customers
WHERE city = 'Pune'
OR city = 'Mumbai';
This returns customers from either Pune or Mumbai.
🔹 14. AND vs OR
Consider:
WHERE age > 30
AND city = 'Pune'
A customer must satisfy both conditions.
But:
WHERE age > 30
OR city = 'Pune'
A customer only needs to satisfy one or both conditions.
This difference is extremely important.
🔹 15. NOT
NOT reverses a condition.
Example:
SELECT *
FROM customers
WHERE NOT city = 'Pune';
This returns customers who aren't from Pune.
You can also commonly write:
SELECT *
FROM customers
WHERE city <> 'Pune';
🔹 16. Combining AND and OR
You can combine multiple logical operators.
Example:
SELECT *
FROM employees
WHERE department = 'Finance'
AND salary > 60000;
Another example:
SELECT *
FROM employees
WHERE department = 'Finance'
OR department = 'Analytics'
AND salary > 60000;
When conditions become complex, use parentheses to make your intended logic explicit.
For example:
SELECT *
FROM employees
WHERE
(department = 'Finance' OR department = 'Analytics')
AND salary > 60000;
This means:
Employees from Finance or Analytics who earn more than 60,000.🔹 17. Why Parentheses Matter Consider:
WHERE city = 'Pune'
OR city = 'Mumbai'
AND age > 30
SQL's logical evaluation rules can make this behave differently from what a beginner might expect.
A safer and clearer version is:
WHERE
(city = 'Pune' OR city = 'Mumbai')
AND age > 30;
This clearly communicates the intended logic.
Best practice:
Use parentheses whenever combining AND and OR in a complex condition.🔹 18. WHERE with Dates You can also filter dates. Example:
SELECT *
FROM orders
WHERE order_date >= '2026-01-01';
This retrieves orders on or after January 1, 2026.
Another example:
SELECT *
FROM orders
WHERE order_date < '2026-07-01';
This retrieves orders before July 1, 2026.
Date syntax can vary slightly across database systems, so always consider the SQL dialect you're using.
🔹 19. Filtering a Date Range
Suppose you want orders during a particular period.
You can use:
SELECT *
FROM orders
WHERE order_date >= '2026-01-01'
AND order_date < '2026-04-01';
This retrieves orders from January through March.
Using a half-open range like this is particularly useful when working with timestamps because it avoids accidentally excluding records with time components.
🔹 20. BETWEEN
SQL provides BETWEEN for range filtering.
Example:
SELECT *
FROM products
WHERE price BETWEEN 1000 AND 5000;
BETWEEN is inclusive of both boundaries in standard SQL.
So this includes:
1000
and:
5000
as well as values between them.
🔹 21. BETWEEN with Dates
Example:
SELECT *
FROM orders
WHERE order_date BETWEEN '2026-01-01' AND '2026-01-31';
For a date-only column, this can be useful.
However, if order_date contains timestamps, using:
order_date >= '2026-01-01'
AND order_date < '2026-02-01'
is often safer because it includes the entire final day regardless of the timestamp.
🔹 22. IN Operator
Suppose you want customers from:
Pune
Mumbai
Delhi
You could write:
SELECT *
FROM customers
WHERE city = 'Pune'
OR city = 'Mumbai'
OR city = 'Delhi';SELECT column1, column2
FROM table_name
WHERE condition;
Example:
SELECT *
FROM customers
WHERE city = 'Mumbai';
This returns only customers whose city is Mumbai.
🔹 2. WHERE with Text Values
Text values are generally written inside single quotes.
Example:
SELECT customer_id, name
FROM customers
WHERE city = 'Pune';
This retrieves customers from Pune.
Another example:
SELECT *
FROM employees
WHERE department = 'Finance';
🔹 3. WHERE with Numbers
For numeric values, quotes are generally not required.
Example:
SELECT *
FROM customers
WHERE age > 30;
This returns customers older than 30.
Another example:
SELECT *
FROM orders
WHERE amount > 10000;
This returns orders where the amount is greater than 10,000.
🔹 4. Comparison Operators
The most commonly used comparison operators are:
Operator Meaning
= Equal to
<> Not equal to
!= Not equal to
Greater than < Less than = Greater than or equal to <= Less than or equal toExample:
SELECT *
FROM employees
WHERE salary >= 50000;
This returns employees whose salary is at least 50,000.
🔹 5. Equal To =
The = operator checks whether two values are equal.
SELECT *
FROM customers
WHERE city = 'Delhi';
Only records where city equals Delhi are returned.
🔹 6. Not Equal <>
You can retrieve records that don't match a value.
SELECT *
FROM customers
WHERE city <> 'Delhi';
This returns customers whose city isn't Delhi.
You may also see:
WHERE city != 'Delhi'
Both are commonly supported, although <> is the standard SQL operator.
🔹 7. Greater Than >
Example:
SELECT *
FROM orders
WHERE amount > 50000;
Returns orders above 50,000.
🔹 8. Less Than <
Example:
SELECT *
FROM products
WHERE price < 1000;
Returns products priced below 1,000.
🔹 9. Greater Than or Equal To >=
Example:
SELECT *
FROM employees
WHERE experience >= 5;
This includes employees with exactly 5 years as well as those with more than 5 years.
🔹 10. Less Than or Equal To <=
Example:
SELECT *
FROM products
WHERE price <= 500;
This includes products priced exactly at 500.
🔹 11. WHERE with Multiple Conditions
Real-world queries often require more than one condition.
For this, SQL provides logical operators:
• AND
• OR
• NOT
🔹 12. AND
AND means all conditions must be true.
Example:
SELECT *
FROM customers
WHERE city = 'Pune'
AND age > 30;
This returns customers who:
1.
Are from Pune
2.
Are older than 30
Both conditions must be satisfied.
🔹 13. OR
OR means at least one condition must be true.
Example: