SQL Programming Resources
74.8K subscribers
494 photos
13 files
439 links
Find top SQL resources from global universities, cool projects, and learning materials for data analytics.

Admin: @coderfun

Useful links: heylink.me/DataAnalytics

Promotions: @love_data
Download Telegram
SQL is easy to learn, but difficult to master.

Here are 5 hacks to level up your SQL ๐Ÿ‘‡

1. Know complex joins
2. Master Window functions
3. Explore alternative solutions
4. Master query optimization
5. Get familiar with ETL

โ€”โ€”โ€”

๐˜‰๐˜ต๐˜ธ, ๐˜ต๐˜ฉ๐˜ฆ๐˜ณ๐˜ฆ ๐˜ข๐˜ณ๐˜ฆ ๐˜ฑ๐˜ณ๐˜ข๐˜ค๐˜ต๐˜ช๐˜ค๐˜ฆ ๐˜ฑ๐˜ณ๐˜ฐ๐˜ฃ๐˜ญ๐˜ฆ๐˜ฎ๐˜ด ๐˜ช๐˜ฏ ๐˜ต๐˜ฉ๐˜ฆ ๐˜ค๐˜ข๐˜ณ๐˜ฐ๐˜ถ๐˜ด๐˜ฆ๐˜ญ.

๐Ÿญ/ ๐—ž๐—ป๐—ผ๐˜„ ๐—ฐ๐—ผ๐—บ๐—ฝ๐—น๐—ฒ๐˜… ๐—ท๐—ผ๐—ถ๐—ป๐˜€

LEFT JOIN, RIGHT JOIN, INNER JOIN, OUTER JOIN โ€” these are easy.

But SQL gets really powerful, when you know
โ†ณ Anti Joins
โ†ณ Self Joins
โ†ณ Cartesian Joins
โ†ณ Multi-Table Joins

๐Ÿฎ/ ๐— ๐—ฎ๐˜€๐˜๐—ฒ๐—ฟ ๐—ช๐—ถ๐—ป๐—ฑ๐—ผ๐˜„ ๐—ณ๐˜‚๐—ป๐—ฐ๐˜๐—ถ๐—ผ๐—ป๐˜€

Window functions = flexible, effective, and essential.

They give you Python-like versatility in SQL. ๐˜š๐˜ถ๐˜ฑ๐˜ฆ๐˜ณ ๐˜ค๐˜ฐ๐˜ฐ๐˜ญ.

๐Ÿฏ/ ๐—˜๐˜…๐—ฝ๐—น๐—ผ๐—ฟ๐—ฒ ๐—ฎ๐—น๐˜๐—ฒ๐—ฟ๐—ป๐—ฎ๐˜๐—ถ๐˜ƒ๐—ฒ ๐˜€๐—ผ๐—น๐˜‚๐˜๐—ถ๐—ผ๐—ป๐˜€

In SQL, thereโ€™s rarely one โ€œrightโ€ way to solve a problem.

By exploring alternative approaches, you develop flexibility in thinking AND learn about trade-offs.

๐Ÿฐ/ ๐— ๐—ฎ๐˜€๐˜๐—ฒ๐—ฟ ๐—พ๐˜‚๐—ฒ๐—ฟ๐˜† ๐—ผ๐—ฝ๐˜๐—ถ๐—บ๐—ถ๐˜‡๐—ฎ๐˜๐—ถ๐—ผ๐—ป

Inefficient queries overload systems, cost money and waste time.

3 (super quick) tips on optimizing queries:
1. Use indexes effectively
2. Analyze execution plans
3. Reduce unnecessary operations

๐Ÿฑ/ ๐—š๐—ฒ๐˜ ๐—ณ๐—ฎ๐—บ๐—ถ๐—น๐—ถ๐—ฎ๐—ฟ ๐˜„๐—ถ๐˜๐—ต ๐—˜๐—ง๐—Ÿ

ETL is the backbone of moving and preparing data.

โ†ณ Extract: Pull data from various sources
โ†ณ Transform: Clean, filter, and reformat the data
โ†ณ Load: Store the cleaned data in a data warehouse

Here you can find essential SQL Interview Resources๐Ÿ‘‡
https://t.me/mysqldata

Like this post if you need more ๐Ÿ‘โค๏ธ

Hope it helps :)
โค5
Here are some essential SQL tips for beginners ๐Ÿ‘‡๐Ÿ‘‡

โ—† Primary Key = Unique Key + Not Null constraint
โ—† To perform case insensitive search use UPPER() function ex. UPPER(customer_name) LIKE โ€˜A%Aโ€™
โ—† LIKE operator is for string data type
โ—† COUNT(*), COUNT(1), COUNT(0) all are same
โ—† All aggregate functions ignore the NULL values
โ—† Aggregate functions MIN, MAX, SUM, AVG, COUNT are for int data type whereas STRING_AGG is for string data type
โ—† For row level filtration use WHERE and aggregate level filtration use HAVING
โ—† UNION ALL will include duplicates where as UNION excludes duplicates 
โ—† If the results will not have any duplicates, use UNION ALL instead of UNION
โ—† We have to alias the subquery if we are using the columns in the outer select query
โ—† Subqueries can be used as output with NOT IN condition.
โ—† CTEs look better than subqueries. Performance wise both are same.
โ—† When joining two tables , if one table has only one value then we can use 1=1 as a condition to join the tables. This will be considered as CROSS JOIN.
โ—† Window functions work at ROW level.
โ—† The difference between RANK() and DENSE_RANK() is that RANK() skips the rank if the values are the same.
โ—† EXISTS works on true/false conditions. If the query returns at least one value, the condition is TRUE. All the records corresponding to the conditions are returned.

Like for more ๐Ÿ˜„๐Ÿ˜„
โค4
๐Ÿ”— SQL Fundamentals Part-4: JOINS

In real databases, data is stored in multiple tables, not one big table. JOINS allow you to combine data from different tables.

Example:
Customers Table
customer_id | name
1 | Rahul
2 | Priya

Orders Table
order_id | customer_id | amount
101 | 1 | 500
102 | 2 | 300

To see customer name + order amount, we must use JOIN.

Basic JOIN Syntax

SELECT columns
FROM table1
JOIN table2
ON table1.column = table2.column;

ON defines the relationship between tables.

1๏ธโƒฃ INNER JOIN
Returns only matching records from both tables.

SELECT customers.name, orders.amount
FROM customers
INNER JOIN orders
ON customers.customer_id = orders.customer_id;

Result:
name | amount
Rahul | 500
Priya | 300

๐Ÿ‘‰ If a customer has no order, they will not appear.

2๏ธโƒฃ LEFT JOIN (Very Common โญ)

Returns: All rows from left table, Matching rows from right table, If no match โ†’ NULL

SELECT customers.name, orders.amount
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id;

Result:
name | amount
Rahul | 500
Priya | 300
Amit | NULL

๐Ÿ‘‰ Amit has no order.

3๏ธโƒฃ RIGHT JOIN

Opposite of LEFT JOIN. Returns: All rows from right table, Matching rows from left table

SELECT customers.name, orders.amount
FROM customers
RIGHT JOIN orders
ON customers.customer_id = orders.customer_id;

Used less frequently in analytics.

4๏ธโƒฃ FULL JOIN
Returns: All records from both tables, If no match โ†’ NULL

SELECT customers.name, orders.amount
FROM customers
FULL JOIN orders
ON customers.customer_id = orders.customer_id;

5๏ธโƒฃ SELF JOIN

A table joins with itself. Used when rows relate to other rows in the same table.

SELECT e.name AS employee, m.name AS manager
FROM employees e
LEFT JOIN employees m
ON e.manager_id = m.employee_id;

JOIN Visual Understanding

โ€ข INNER JOIN: Only matching rows
โ€ข LEFT JOIN: All left + matching right
โ€ข RIGHT JOIN: All right + matching left
โ€ข FULL JOIN: All rows from both
โ€ข SELF JOIN: Table joined with itself

Real Data Analyst Examples
-- Customer order report
SELECT c.name, o.amount
FROM customers c
JOIN orders o
ON c.customer_id = o.customer_id;

-- Products with category
SELECT p.product_name, c.category
FROM products p
JOIN categories c
ON p.category_id = c.category_id;

-- Sales by region
SELECT r.region_name, SUM(s.amount)
FROM sales s
JOIN regions r
ON s.region_id = r.region_id
GROUP BY r.region_name;

Used daily in Power BI dashboards, analytics queries, and reports.

Mini Practice Tasks
1. Show customer names with their order amount.
2. Show all customers even if they have no orders.
3. Show employees with their manager names.
4. Show products with their category name.

Common Interview Questions
โœ” Difference between INNER JOIN and LEFT JOIN
โœ” When to use SELF JOIN
โœ” Why LEFT JOIN is used in analytics
โœ” Difference between JOIN and UNION
โœ” Join execution order

Double Tap โ™ฅ๏ธ For More
โค13
SQL Detailed Roadmap
|
| | |-- Fundamentals
| |-- Introduction to Databases
| | |-- What SQL does
| | |-- Relational model
| | |-- Tables, rows, columns
| |-- Keys and Constraints
| | |-- Primary keys
| | |-- Foreign keys
| | |-- Unique and check constraints
| |-- Normalization
| | |-- 1NF, 2NF, 3NF
| | |-- ER diagrams

| | |-- Core SQL
| |-- SQL Basics
| | |-- SELECT, WHERE, ORDER BY
| | |-- GROUP BY and HAVING
| | |-- JOINS: INNER, LEFT, RIGHT, FULL
| |-- Intermediate SQL
| | |-- Subqueries
| | |-- CTEs
| | |-- CASE statements
| | |-- Aggregations
| |-- Advanced SQL
| | |-- Window functions
| | |-- Analytical functions
| | |-- Ranking, moving averages, lag and lead
| | |-- UNION, INTERSECT, EXCEPT

| | |-- Data Management
| |-- Data Types
| | |-- Numeric, text, date, JSON
| |-- Indexes
| | |-- B tree and hash indexes
| | |-- When to create indexes
| |-- Transactions
| | |-- ACID properties
| |-- Views
| | |-- Standard views
| | |-- Materialized views

| | |-- Database Design
| |-- Schema Design
| | |-- Star schema
| | |-- Snowflake schema
| |-- Fact and Dimension Tables
| |-- Constraints for clean data

| | |-- Performance Tuning
| |-- Query Optimization
| | |-- Execution plans
| | |-- Index usage
| | |-- Reducing scans
| |-- Partitioning
| | |-- Horizontal partitioning
| | |-- Sharding basics

| | |-- SQL for Analytics
| |-- KPI calculations
| |-- Cohort analysis
| |-- Funnel analysis
| |-- Churn and retention tables
| |-- Time based aggregations
| |-- Window functions for metrics

| | |-- SQL for Data Engineering
| |-- ETL Workflows
| | |-- Staging tables
| | |-- Transformations
| | |-- Incremental loads
| |-- Data Warehousing
| | |-- Snowflake
| | |-- Redshift
| | |-- BigQuery
| |-- dbt Basics
| | |-- Models
| | |-- Tests
| | |-- Lineage

| | |-- Tools and Platforms
| |-- PostgreSQL
| |-- MySQL
| |-- SQL Server
| |-- Oracle
| |-- SQLite
| |-- Cloud SQL
| |-- BigQuery UI
| |-- Snowflake Worksheets

| | |-- Projects
| |-- Build a sales reporting system
| |-- Create a star schema from raw CSV files
| |-- Design a customer segmentation query
| |-- Build a churn dashboard dataset
| |-- Optimize slow queries in a sample DB
| |-- Create an analytics pipeline with dbt

| | |-- Soft Skills and Career Prep
| |-- SQL interview patterns
| |-- Joins practice
| |-- Window function drills
| |-- Query writing speed
| |-- Git and GitHub
| |-- Data storytelling

| | |-- Bonus Topics
| |-- NoSQL intro
| |-- Working with JSON fields
| |-- Spatial SQL
| |-- Time series tables
| |-- CDC concepts
| |-- Real time analytics

| | |-- Community and Growth
| |-- LeetCode SQL
| |-- Kaggle datasets with SQL
| |-- GitHub projects
| |-- LinkedIn posts
| |-- Open source contributions

Free Resources to learn SQL

โ€ข W3Schools SQL
https://www.w3schools.com/sql/

โ€ข SQL Programming
https://whatsapp.com/channel/0029VanC5rODzgT6TiTGoa1v

โ€ข SQL Notes
https://whatsapp.com/channel/0029Vb6hJmM9hXFCWNtQX944

โ€ข Mode Analytics SQL tutorials
https://mode.com/sql-tutorial/

โ€ข Data Analytics Resources
https://t.me/sqlspecialist

โ€ข HackerRank SQL practice
https://www.hackerrank.com/domains/sql

โ€ข LeetCode SQL problems
https://leetcode.com/problemset/database/

โ€ข Data Engineering Resources
https://whatsapp.com/channel/0029Vaovs0ZKbYMKXvKRYi3C

โ€ข Khan Academy SQL basics
https://www.khanacademy.org/computing/computer-programming/sql

โ€ข PostgreSQL official docs
https://www.postgresql.org/docs/

โ€ข MySQL official docs
https://dev.mysql.com/doc/

โ€ข NoSQL Resources
https://whatsapp.com/channel/0029VaxA2hTHgZWe5FpFjm3p

Double Tap โค๏ธ For More
โค9
โšก Subqueries CTEs

After mastering JOINS, the next important concept is Subqueries and CTEs. These are used when queries become complex and you need intermediate results.

๐Ÿ‘‰ Very common in data analyst interviews and real analytics queries.

๐Ÿ”น 1๏ธโƒฃ What is a Subquery?

A subquery is a query inside another SQL query. It is executed first, and its result is used by the main query.

๐ŸŽฏ Basic Syntax

SELECT column
FROM table
WHERE column = (SELECT column FROM table);


๐Ÿง  Example 1 โ€” Find Employees with Highest Salary

SELECT name, salary
FROM employees
WHERE salary = (SELECT MAX(salary) FROM employees);


Explanation:
1๏ธโƒฃ Inner query finds maximum salary
2๏ธโƒฃ Outer query finds employee with that salary

๐Ÿ”น 2๏ธโƒฃ Subquery in WHERE Clause
Most common use.

Example โ€” Employees earning more than average salary

SELECT name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);


Used heavily in analytics queries.

๐Ÿ”น 3๏ธโƒฃ Subquery in FROM Clause
Also called Derived Table.

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


Used when intermediate results are required.

๐Ÿ”น 4๏ธโƒฃ EXISTS / NOT EXISTS

Used to check if a record exists in another table.

Example โ€” Customers who placed orders

SELECT name
FROM customers c
WHERE EXISTS (
SELECT 1
FROM orders o
WHERE c.customer_id = o.customer_id
);


๐Ÿ‘‰ Returns customers with orders.

Example โ€” Customers with no orders

SELECT name
FROM customers c
WHERE NOT EXISTS (
SELECT 1
FROM orders o
WHERE c.customer_id = o.customer_id
);


โญ 5๏ธโƒฃ Common Table Expressions (CTEs)

CTEs improve query readability and structure. Defined using WITH clause.

Basic Syntax

WITH cte_name AS (
SELECT column
FROM table
)
SELECT *
FROM cte_name;


๐Ÿง  Example โ€” Average Salary by Department

WITH dept_avg AS (
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
)
SELECT *
FROM dept_avg;


๐Ÿ”น 6๏ธโƒฃ Multiple CTEs

You can chain multiple CTEs.

WITH total_sales AS (
SELECT customer_id, SUM(amount) AS total
FROM orders
GROUP BY customer_id
),
top_customers AS (
SELECT *
FROM total_sales
WHERE total > 1000
)
SELECT *
FROM top_customers;


Used often in complex analytics queries.

๐Ÿง  Real Analyst Examples

Customers with above average purchases

SELECT customer_id
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > (
SELECT AVG(total)
FROM (
SELECT SUM(amount) AS total
FROM orders
GROUP BY customer_id
) AS totals
);


Complex analytics often uses subqueries or CTEs.

๐Ÿš€ Mini Practice Tasks

๐ŸŽฏ Task 1 โ€” Find employees earning more than average salary

โœ” Solution

SELECT name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);


๐Ÿ’ก Explanation: Subquery calculates average salary, Outer query filters employees above average.

๐ŸŽฏ Task 2 โ€” Find customers who placed orders

โœ” Solution (Using EXISTS โญ)

SELECT name
FROM customers c
WHERE EXISTS (
SELECT 1
FROM orders o
WHERE c.customer_id = o.customer_id
);


๐Ÿ’ก Explanation: Checks if an order exists for the customer.

๐ŸŽฏ Task 3 โ€” Find departments with salary greater than company average

โœ” Solution

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


๐Ÿ’ก Explanation: Subquery finds company average salary, HAVING filters departments above that average.

๐ŸŽฏ Task 4 โ€” Use a CTE to calculate total sales per customer

โœ” Solution

WITH customer_sales AS (
SELECT customer_id, SUM(amount) AS total_sales
FROM orders
GROUP BY customer_id
)
SELECT * FROM customer_sales;


๐Ÿ’ก Explanation: CTE calculates total sales for each customer, Main query retrieves the result.

Double Tap โ™ฅ๏ธ For More
โค9
What will this query return?

SELECT name FROM employees WHERE salary > (SELECT salary FROM employees);
Anonymous Quiz
41%
A) Employees with highest salary
44%
B) Error: Subquery returns multiple rows
12%
C) All employees
3%
D) Only first employee
What will this query output?

SELECT * FROM employees WHERE department_id IN ( SELECT department_id FROM departments );
Anonymous Quiz
75%
A) Employees with departments listed in the departments table
14%
B) All employees
6%
C) No employees
5%
D) Only department names
What is the output of this query?

WITH numbers AS ( SELECT 10 AS value UNION SELECT 20 ) SELECT SUM(value) FROM numbers;
Anonymous Quiz
10%
A) 10
18%
B) 20
49%
C) 30
24%
D) Error
What will this query return?

SELECT name FROM customers WHERE NOT EXISTS ( SELECT * FROM orders WHERE customers.customer_id = orders.customer_id );
Anonymous Quiz
25%
A) Customers who placed orders
66%
B) Customers without orders
6%
C) All customers
3%
D) Only order details
โค1
๐Ÿง  SQL Interview Question (Moderateโ€“Tricky & Duplicate Transaction Detection)
๐Ÿ“Œ

transactions(transaction_id, user_id, transaction_date, amount)

โ“ Ques :

๐Ÿ‘‰ Find users who made multiple transactions with the same amount consecutively.

๐Ÿงฉ How Interviewers Expect You to Think

โ€ข Sort transactions chronologically for each user
โ€ข Compare the current transaction amount with the previous one
โ€ข Use a window function to detect consecutive duplicates

๐Ÿ’ก SQL Solution

SELECT
user_id,
transaction_date,
amount
FROM (
SELECT
user_id,
transaction_date,
amount,
LAG(amount) OVER (
PARTITION BY user_id
ORDER BY transaction_date
) AS prev_amount
FROM transactions
) t
WHERE amount = prev_amount;

๐Ÿ”ฅ Why This Question Is Powerful

โ€ข Tests understanding of LAG() for row comparison
โ€ข Evaluates ability to identify patterns in sequential data
โ€ข Reflects real-world use cases like detecting suspicious or duplicate transactions

โค๏ธ React if you want more tricky real interview-level SQL questions ๐Ÿš€
โค12
๐Ÿš€ Window Functions โญ

Window functions are one of the most powerful SQL features used in data analytics, reporting, and advanced SQL interviews.

๐Ÿ‘‰ They allow you to perform calculations across rows without collapsing them like GROUP BY.

In simple words:
GROUP BY โ†’ reduces rows

Window Functions โ†’ keep rows but add calculated values

๐Ÿง  Basic Syntax of Window Functions
SELECT column, window_function() 
OVER (
PARTITION BY column
ORDER BY column
)
FROM table;

Components:
- OVER() โ†’ defines the window
- PARTITION BY โ†’ splits data into groups
- ORDER BY โ†’ defines calculation order

๐Ÿ”น 1๏ธโƒฃ ROW_NUMBER()

Assigns a unique sequential number to rows.
SELECT name, salary, ROW_NUMBER() OVER(ORDER BY salary DESC) AS rank 
FROM employees;

Result:
name | salary | rank
Rahul | 90000 | 1
Priya | 85000 | 2
Amit | 85000 | 3

๐Ÿ‘‰ Even if salaries are same, numbers stay unique.

๐Ÿ”น 2๏ธโƒฃ RANK()

Assigns rank but skips numbers when ties occur.
SELECT name, salary, RANK() OVER(ORDER BY salary DESC) AS rank 
FROM employees;

Result:
name | salary | rank
Rahul | 90000 | 1
Priya | 85000 | 2
Amit | 85000 | 2
Neha | 80000 | 4

Notice rank 3 is skipped.

๐Ÿ”น 3๏ธโƒฃ DENSE_RANK()

Similar to RANK but does not skip numbers.
SELECT name, salary, DENSE_RANK() OVER(ORDER BY salary DESC) AS rank 
FROM employees;

Result:
name | salary | rank
Rahul | 90000 | 1
Priya | 85000 | 2
Amit | 85000 | 2
Neha | 80000 | 3

๐Ÿ”น 4๏ธโƒฃ PARTITION BY

Used to divide rows into groups before calculation.

Example: Rank employees within each department
SELECT name, department, salary, 
RANK() OVER(
PARTITION BY department
ORDER BY salary DESC
) AS dept_rank
FROM employees;

๐Ÿ‘‰ Each department gets its own ranking.

๐Ÿ”น 5๏ธโƒฃ LAG()

Used to access previous row values.

Example: Compare sales with previous day.
SELECT date, sales, LAG(sales) OVER(ORDER BY date) AS previous_sales 
FROM sales;

๐Ÿ”น 6๏ธโƒฃ LEAD()

Used to access next row values.
SELECT date, sales, LEAD(sales) OVER(ORDER BY date) AS next_sales 
FROM sales;

โญ Real Data Analyst Examples

Top 3 highest salaries
SELECT ** 
FROM (
SELECT name, salary, ROW_NUMBER() OVER(ORDER BY salary DESC) AS rn
FROM employees
) t
WHERE rn <= 3;

Running total of sales
SELECT date, sales, SUM(sales) OVER(ORDER BY date) AS running_total 
FROM sales;

Rank products by category
SELECT product_name, category, price, 
RANK() OVER(PARTITION BY category ORDER BY price DESC) AS rank
FROM products;

๐ŸŽฏ Common Interview Questions
โœ” Difference between ROW_NUMBER, RANK, DENSE_RANK
โœ” Find Nth highest salary
โœ” Running totals using window functions
โœ” Compare current row with previous row
โœ” Rank employees by department

๐Ÿš€ Mini Practice Tasks
Task 1: Assign row numbers to employees by salary.
Task 2: Rank employees by salary.
Task 3: Find top 3 highest salaries using window functions.
Task 4: Calculate running total of sales.

๐Ÿ’ผ What You Must Master
โœ… ROW_NUMBER()
โœ… RANK()
โœ… DENSE_RANK()
โœ… PARTITION BY
โœ… LAG() / LEAD()
โœ… Running totals

These functions are used heavily in real analytics queries and SQL interviews.

Double Tap โ™ฅ๏ธ For More
โค10
โœ… Useful Platform to Practice SQL Programming ๐Ÿง ๐Ÿ–ฅ๏ธ

Learning SQL is just the first step โ€” practice is what builds real skill. Here are the best platforms for hands-on SQL:

1๏ธโƒฃ LeetCode โ€“ For Interview-Oriented SQL Practice
โ€ข Focus: Real interview-style problems
โ€ข Levels: Easy to Hard
โ€ข Schema + Sample Data Provided
โ€ข Great for: Data Analyst, Data Engineer, FAANG roles
โœ” Tip: Start with Easy โ†’ filter by โ€œDatabaseโ€ tag
โœ” Popular Section: Database โ†’ Top 50 SQL Questions
Example Problem: โ€œFind duplicate emails in a user tableโ€ โ†’ Practice filtering, GROUP BY, HAVING

2๏ธโƒฃ HackerRank โ€“ Structured & Beginner-Friendly
โ€ข Focus: Step-by-step SQL track
โ€ข Has certification tests (SQL Basic, Intermediate)
โ€ข Problem sets by topic: SELECT, JOINs, Aggregations, etc.
โœ” Tip: Follow the full SQL track
โœ” Bonus: Company-specific challenges
Try: โ€œRevising Aggregations โ€“ The Count Functionโ€ โ†’ Build confidence with small wins

3๏ธโƒฃ Mode Analytics โ€“ Real-World SQL in Business Context
โ€ข Focus: Business intelligence + SQL
โ€ข Uses real-world datasets (e.g., e-commerce, finance)
โ€ข Has an in-browser SQL editor with live data
โœ” Best for: Practicing dashboard-level queries
โœ” Tip: Try the SQL case studies & tutorials

4๏ธโƒฃ StrataScratch โ€“ Interview Questions from Real Companies
โ€ข 500+ problems from companies like Uber, Netflix, Google
โ€ข Split by company, difficulty, and topic
โœ” Best for: Intermediate to advanced level
โœ” Tip: Try โ€œHardโ€ questions after doing 30โ€“50 easy/medium

5๏ธโƒฃ DataLemur โ€“ Short, Practical SQL Problems
โ€ข Crisp and to the point
โ€ข Good UI, fast learning
โ€ข Real interview-style logic
โœ” Use when: You want fast, smart SQL drills

๐Ÿ“Œ How to Practice Effectively:
โ€ข Spend 20โ€“30 mins/day
โ€ข Focus on JOINs, GROUP BY, HAVING, Subqueries
โ€ข Analyze problem โ†’ write โ†’ debug โ†’ re-write
โ€ข After solving, explain your logic out loud

๐Ÿงช Practice Task:
Try solving 5 SQL questions from LeetCode or HackerRank this week. Start with SELECT, WHERE, and GROUP BY.

๐Ÿ’ฌ Tap โค๏ธ for more!
โค15
โš™๏ธ SQL Developer Roadmap

๐Ÿ“‚ SQL Basics (CREATE, DROP, USE Database)
โˆŸ๐Ÿ“‚ Data Types & DDL (Tables, Constraints - PK/FK)
โˆŸ๐Ÿ“‚ DML (INSERT, UPDATE, DELETE)
โˆŸ๐Ÿ“‚ SELECT Queries (DISTINCT, LIMIT/TOP)
โˆŸ๐Ÿ“‚ WHERE Clause (Operators, LIKE, IN, BETWEEN)
โˆŸ๐Ÿ“‚ ORDER BY & Sorting (ASC/DESC)
โˆŸ๐Ÿ“‚ Aggregate Functions (COUNT, SUM, AVG, MIN/MAX)
โˆŸ๐Ÿ“‚ GROUP BY & HAVING
โˆŸ๐Ÿ“‚ JOINs (INNER, LEFT, RIGHT, FULL)
โˆŸ๐Ÿ“‚ Subqueries
โˆŸ๐Ÿ“‚ String Functions (CONCAT, SUBSTRING, UPPER/LOWER)
โˆŸ๐Ÿ“‚ Date Functions (NOW, DATEADD, DATEDIFF)
โˆŸ๐Ÿ“‚ Window Functions (ROW_NUMBER, RANK, PARTITION BY)
โˆŸ๐Ÿ“‚ CTEs (Common Table Expressions)
โˆŸ๐Ÿ“‚ Indexes & Performance
โˆŸ๐Ÿ“‚ Transactions (BEGIN, COMMIT, ROLLBACK)
โˆŸ๐Ÿ“‚ Views & Stored Procedures
โˆŸ๐Ÿ“‚ Practice (LeetCode SQL, HackerRank)
โˆŸโœ… Apply for Data Analyst / Backend Roles

๐Ÿ’ฌ Tap โค๏ธ for more!
โค16
๐Ÿ”ฅ Top SQL Interview Questions with Answers

๐ŸŽฏ 1๏ธโƒฃ Find 2nd Highest Salary
๐Ÿ“Š Table: employees
id | name | salary
1 | Rahul | 50000
2 | Priya | 70000
3 | Amit | 60000
4 | Neha | 70000

โ“ Problem Statement: Find the second highest distinct salary from the employees table.

โœ… Solution
SELECT MAX(salary) FROM employees WHERE salary < ( SELECT MAX(salary) FROM employees );

๐ŸŽฏ 2๏ธโƒฃ Find Nth Highest Salary
๐Ÿ“Š Table: employees
id | name | salary
1 | A | 100
2 | B | 200
3 | C | 300
4 | D | 200

โ“ Problem Statement: Write a query to find the 3rd highest salary.

โœ… Solution
SELECT salary FROM ( SELECT salary, DENSE_RANK() OVER(ORDER BY salary DESC) r FROM employees ) t WHERE r = 3;

๐ŸŽฏ 3๏ธโƒฃ Find Duplicate Records
๐Ÿ“Š Table: employees
id | name
1 | Rahul
2 | Amit
3 | Rahul
4 | Neha

โ“ Problem Statement: Find all duplicate names in the employees table.

โœ… Solution
SELECT name, COUNT(*) FROM employees GROUP BY name HAVING COUNT(*) > 1;

๐ŸŽฏ 4๏ธโƒฃ Customers with No Orders
๐Ÿ“Š Table: customers
customer_id | name
1 | Rahul
2 | Priya
3 | Amit

๐Ÿ“Š Table: orders
order_id | customer_id
101 | 1
102 | 2

โ“ Problem Statement: Find customers who have not placed any orders.

โœ… Solution
SELECT c.name FROM customers c LEFT JOIN orders o ON c.customer_id = o.customer_id WHERE o.customer_id IS NULL;

๐ŸŽฏ 5๏ธโƒฃ Top 3 Salaries per Department
๐Ÿ“Š Table: employees
name | department | salary
A | IT | 100
B | IT | 200
C | IT | 150
D | HR | 120
E | HR | 180

โ“ Problem Statement: Find the top 3 highest salaries in each department.

โœ… Solution
SELECT * FROM ( SELECT name, department, salary, ROW_NUMBER() OVER( PARTITION BY department ORDER BY salary DESC ) r FROM employees ) t WHERE r <= 3;

๐ŸŽฏ 6๏ธโƒฃ Running Total of Sales
๐Ÿ“Š Table: sales
date | sales
2024-01-01 | 100
2024-01-02 | 200
2024-01-03 | 300

โ“ Problem Statement: Calculate the running total of sales by date.

โœ… Solution
SELECT date, sales, SUM(sales) OVER(ORDER BY date) AS running_total FROM sales;

๐ŸŽฏ 7๏ธโƒฃ Employees Above Average Salary
๐Ÿ“Š Table: employees
name | salary
A | 100
B | 200
C | 300

โ“ Problem Statement: Find employees earning more than the average salary.

โœ… Solution
SELECT name, salary FROM employees WHERE salary > ( SELECT AVG(salary) FROM employees );

๐ŸŽฏ 8๏ธโƒฃ Department with Highest Total Salary
๐Ÿ“Š Table: employees
name | department | salary
A | IT | 100
B | IT | 200
C | HR | 500

โ“ Problem Statement: Find the department with the highest total salary.

โœ… Solution
SELECT department, SUM(salary) AS total_salary FROM employees GROUP BY department ORDER BY total_salary DESC LIMIT 1;

๐ŸŽฏ 9๏ธโƒฃ Customers Who Placed Orders
๐Ÿ“Š Tables: Same as Q4
โ“ Problem Statement: Find customers who have placed at least one order.

โœ… Solution
SELECT name FROM customers c WHERE EXISTS ( SELECT 1 FROM orders o WHERE c.customer_id = o.customer_id );

๐ŸŽฏ ๐Ÿ”Ÿ Remove Duplicate Records
๐Ÿ“Š Table: employees
id | name
1 | Rahul
2 | Rahul
3 | Amit

โ“ Problem Statement: Delete duplicate records but keep one unique record.

โœ… Solution
DELETE FROM employees WHERE id NOT IN ( SELECT MIN(id) FROM employees GROUP BY name );

๐Ÿš€ Pro Tip:
๐Ÿ‘‰ In interviews:
First explain logic
Then write query
Then optimize

Double Tap โ™ฅ๏ธ For More
โค15
๐Ÿ“Š Complete SQL Syllabus Roadmap (Beginner to Expert) ๐Ÿ—„๏ธ

๐Ÿ”ฐ Beginner Level:

1. Intro to Databases: What are databases, Relational vs. Non-Relational
2. SQL Basics: SELECT, FROM, WHERE
3. Data Types: INT, VARCHAR, DATE, BOOLEAN, etc.
4. Operators: Comparison, Logical (AND, OR, NOT)
5. Sorting & Filtering: ORDER BY, LIMIT, DISTINCT
6. Aggregate Functions: COUNT, SUM, AVG, MIN, MAX
7. GROUP BY and HAVING: Grouping Data and Filtering Groups
8. Basic Projects: Creating and querying a simple database (e.g., a student database)

โš™๏ธ Intermediate Level:

1. Joins: INNER, LEFT, RIGHT, FULL OUTER JOIN
2. Subqueries: Using queries within queries
3. Indexes: Improving Query Performance
4. Data Modification: INSERT, UPDATE, DELETE
5. Transactions: ACID Properties, COMMIT, ROLLBACK
6. Constraints: PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK, DEFAULT
7. Views: Creating Virtual Tables
8. Stored Procedures & Functions: Reusable SQL Code
9. Date and Time Functions: Working with Date and Time Data
10. Intermediate Projects: Designing and querying a more complex database (e.g., an e-commerce database)

๐Ÿ† Expert Level:

1. Window Functions: RANK, ROW_NUMBER, LAG, LEAD
2. Common Table Expressions (CTEs): Recursive and Non-Recursive
3. Performance Tuning: Query Optimization Techniques
4. Database Design & Normalization: Understanding Database Schemas (Star, Snowflake)
5. Advanced Indexing: Clustered, Non-Clustered, Filtered Indexes
6. Database Administration: Backup and Recovery, Security, User Management
7. Working with Large Datasets: Partitioning, Data Warehousing Concepts
8. NoSQL Databases: Introduction to MongoDB, Cassandra, etc. (optional)
9. SQL Injection Prevention: Secure Coding Practices
10. Expert Projects: Designing, optimizing, and managing a large-scale database (e.g., a social media database)

๐Ÿ’ก Bonus: Learn about Database Security, Cloud Databases (AWS RDS, Azure SQL Database, Google Cloud SQL), and Data Modeling Tools.

๐Ÿ‘ Tap โค๏ธ for more
โค8๐Ÿ‘1
SQL Cheat Sheet for Data Analysts ๐Ÿ—„๏ธ๐Ÿ“Š

1. SELECT
What it is: Used to choose columns from a table
What it does: Returns specific columns of data

Query: Fetch name and salary
SELECT name, salary 
FROM employees;


2. FROM
What it is: Specifies the table
What it does: Tells SQL where to get data from

Query: Fetch all data from employees
SELECT * 
FROM employees;


3. WHERE
What it is: Filters rows based on condition
What it does: Returns only matching rows

Query: Employees with salary > 30000
SELECT * 
FROM employees
WHERE salary > 30000;


4. ORDER BY
What it is: Sorts the data
What it does: Arranges rows in order

Query: Sort by salary (highest first)
SELECT * 
FROM employees
ORDER BY salary DESC;


5. COUNT()
What it is: Counts rows
What it does: Returns total records

Query: Count employees
SELECT COUNT(*) 
FROM employees;


6. AVG()
What it is: Calculates average
What it does: Returns mean value

Query: Average salary
SELECT AVG(salary) 
FROM employees;


7. GROUP BY
What it is: Groups rows by column
What it does: Applies aggregation per group

Query: Avg salary per department
SELECT department, AVG(salary) 
FROM employees
GROUP BY department;


8. HAVING
What it is: Filters grouped data
What it does: Returns filtered groups

Query: Departments with avg salary > 40000
SELECT department, AVG(salary) 
FROM employees
GROUP BY department
HAVING AVG(salary) > 40000;


9. INNER JOIN
What it is: Combines matching rows from tables
What it does: Returns common data

Query: Employees with department names
SELECT e.name, d.department_name 
FROM employees e
INNER JOIN departments d
ON e.dept_id = d.dept_id;


10. LEFT JOIN
What it is: Combines all left + matching right
What it does: Returns all left table data

Query: All employees with departments
SELECT e.name, d.department_name 
FROM employees e
LEFT JOIN departments d
ON e.dept_id = d.dept_id;


11. CASE WHEN
What it is: Conditional logic
What it does: Creates values based on condition

Query: Categorize salary
SELECT name, 
CASE
WHEN salary > 40000 THEN 'High'
ELSE 'Low'
END AS category
FROM employees;


12. SUBQUERY
What it is: Query inside another query
What it does: Uses result of inner query

Query: Salary above average
SELECT name, salary 
FROM employees
WHERE salary > (
SELECT AVG(salary)
FROM employees
);


13. RANK()
What it is: Window function
What it does: Assigns rank without grouping

Query: Rank employees by salary
SELECT name, salary, 
RANK() OVER (ORDER BY salary DESC) AS rank
FROM employees;


14. DISTINCT
What it is: Removes duplicates
What it does: Returns unique values

Query: Unique departments
SELECT DISTINCT department 
FROM employees;


15. LIKE
What it is: Pattern matching
What it does: Filters text patterns

Query: Names starting with A
SELECT * 
FROM employees
WHERE name LIKE 'A%';


Double Tap โ™ฅ๏ธ For More
โค20๐Ÿ‘3
Last Chance to Join ๐Ÿš€

Donโ€™t miss this power-packed masterclass by Tushar Jha, Lead Data Scientist at Google.

Learn how FinTech leaders use data analytics to drive real growth with PW Skills.

โณ 2 Hours | High-Impact Learning

Secure your spot now before itโ€™s gone - https://tinyurl.com/3dzsw8my
โค2๐Ÿ‘1
Quick recap of essential SQL basics ๐Ÿ˜„๐Ÿ‘‡

SQL is a domain-specific language used for managing and querying relational databases. It's crucial for interacting with databases, retrieving, storing, updating, and deleting data. Here are some fundamental SQL concepts:

1. Database
- A database is a structured collection of data. It's organized into tables, and SQL is used to manage these tables.

2. Table
- Tables are the core of a database. They consist of rows and columns, and each row represents a record, while each column represents a data attribute.

3. Query
- A query is a request for data from a database. SQL queries are used to retrieve information from tables. The SELECT statement is commonly used for this purpose.

4. Data Types
- SQL supports various data types (e.g., INTEGER, TEXT, DATE) to specify the kind of data that can be stored in a column.

5. Primary Key
- A primary key is a unique identifier for each row in a table. It ensures that each row is distinct and can be used to establish relationships between tables.

6. Foreign Key
- A foreign key is a column in one table that links to the primary key in another table. It creates relationships between tables in a database.

7. CRUD Operations
- SQL provides four primary operations for data manipulation:
- Create (INSERT) - Add new records to a table.
- Read (SELECT) - Retrieve data from one or more tables.
- Update (UPDATE) - Modify existing data.
- Delete (DELETE) - Remove records from a table.

8. WHERE Clause
- The WHERE clause is used in SELECT, UPDATE, and DELETE statements to filter and conditionally manipulate data.

9. JOIN
- JOIN operations are used to combine data from two or more tables based on a related column. Common types include INNER JOIN, LEFT JOIN, and RIGHT JOIN.

10. Index
- An index is a database structure that improves the speed of data retrieval operations. It's created on one or more columns in a table.

11. Aggregate Functions
- SQL provides functions like SUM, AVG, COUNT, MAX, and MIN for performing calculations on groups of data.

12. Transactions
- Transactions are sequences of one or more SQL statements treated as a single unit. They ensure data consistency by either applying all changes or none.

13. Normalization
- Normalization is the process of organizing data in a database to minimize data redundancy and improve data integrity.

14. Constraints
- Constraints (e.g., NOT NULL, UNIQUE, CHECK) are rules that define what data is allowed in a table, ensuring data quality and consistency.

Here is an amazing resources to learn & practice SQL: https://bit.ly/3FxxKPz

Share with credits: https://t.me/sqlspecialist

Hope it helps :)
โค3
๐Ÿ”ฅ Top SQL Projects for Data Analytics ๐Ÿš€

If you're preparing for a Data Analyst role or looking to level up your SQL skills, working on real-world projects is the best way to learn!

Here are some must-do SQL projects to strengthen your portfolio. ๐Ÿ‘‡

๐ŸŸข Beginner-Friendly SQL Projects (Great for Learning Basics)

โœ… Employee Database Management โ€“ Build and query HR data ๐Ÿ“Š
โœ… Library Book Tracking โ€“ Create a database for book loans and returns
โœ… Student Grading System โ€“ Analyze student performance data
โœ… Retail Point-of-Sale System โ€“ Work with sales and transactions ๐Ÿ’ฐ
โœ… Hotel Booking System โ€“ Manage customer bookings and check-ins ๐Ÿจ

๐ŸŸก Intermediate SQL Projects (For Stronger Querying & Analysis)

โšก E-commerce Order Management โ€“ Analyze order trends & customer data ๐Ÿ›’
โšก Sales Performance Analysis โ€“ Work with revenue, profit margins & KPIs ๐Ÿ“ˆ
โšก Inventory Control System โ€“ Optimize stock tracking ๐Ÿ“ฆ
โšก Real Estate Listings โ€“ Manage and analyze property data ๐Ÿก
โšก Movie Rating System โ€“ Analyze user reviews & trends ๐ŸŽฌ

๐Ÿ”ต Advanced SQL Projects (For Business-Level Analytics)

๐Ÿ”น Social Media Analytics โ€“ Track user engagement & content trends
๐Ÿ”น Insurance Claim Management โ€“ Fraud detection & risk assessment
๐Ÿ”น Customer Feedback Analysis โ€“ Perform sentiment analysis on reviews โญ
๐Ÿ”น Freelance Job Platform โ€“ Match freelancers with project opportunities
๐Ÿ”น Pharmacy Inventory System โ€“ Optimize stock levels & prescriptions

๐Ÿ”ด Expert-Level SQL Projects (For Data-Driven Decision Making)

๐Ÿ”ฅ Music Streaming Analysis โ€“ Study user behavior & song trends ๐ŸŽถ
๐Ÿ”ฅ Healthcare Prescription Tracking โ€“ Identify patterns in medicine usage
๐Ÿ”ฅ Employee Shift Scheduling โ€“ Optimize workforce efficiency โณ
๐Ÿ”ฅ Warehouse Stock Control โ€“ Manage supply chain data efficiently
๐Ÿ”ฅ Online Auction System โ€“ Analyze bidding patterns & sales performance ๐Ÿ›๏ธ

๐Ÿ”— Pro Tip: If you're applying for Data Analyst roles, pick 3-4 projects, clean the data, and create interactive dashboards using Power BI/Tableau to showcase insights!

React with โ™ฅ๏ธ if you want detailed explanation of each project

Share with credits: ๐Ÿ‘‡ https://t.me/sqlspecialist

Hope it helps :)
โค3
SQL From Basic to Advanced level

Basic SQL is ONLY 7 commands:
- SELECT
- FROM
- WHERE (also use SQL comparison operators such as =, <=, >=, <> etc.)
- ORDER BY
- Aggregate functions such as SUM, AVERAGE, COUNT etc.
- GROUP BY
- CREATE, INSERT, DELETE, etc.
You can do all this in just one morning.

Once you know these, take the next step and learn commands like:
- LEFT JOIN
- INNER JOIN
- LIKE
- IN
- CASE WHEN
- HAVING (undertstand how it's different from GROUP BY)
- UNION ALL
This should take another day.

Once both basic and intermediate are done, start learning more advanced SQL concepts such as:
- Subqueries (when to use subqueries vs CTE?)
- CTEs (WITH AS)
- Stored Procedures
- Triggers
- Window functions (LEAD, LAG, PARTITION BY, RANK, DENSE RANK)
These can be done in a couple of days.
Learning these concepts is NOT hard at all

- what takes time is practice and knowing what command to use when. How do you master that?
- First, create a basic SQL project
- Then, work on an intermediate SQL project (search online) -

Lastly, create something advanced on SQL with many CTEs, subqueries, stored procedures and triggers etc.

This is ALL you need to become a badass in SQL, and trust me when I say this, it is not rocket science. It's just logic.

Remember that practice is the key here. It will be more clear and perfect with the continous practice

Best telegram channel to learn SQL: https://t.me/sqlanalyst

Data Analyst Jobs๐Ÿ‘‡
https://t.me/jobs_SQL

Join @free4unow_backup for more free resources.

Like this post if it helps ๐Ÿ˜„โค๏ธ

ENJOY LEARNING ๐Ÿ‘๐Ÿ‘
โค9
Data Analyst INTERVIEW QUESTIONS AND ANSWERS
๐Ÿ‘‡๐Ÿ‘‡

1.Can you name the wildcards in Excel?

Ans: There are 3 wildcards in Excel that can ve used in formulas.

Asterisk (*) โ€“ 0 or more characters. For example, Ex* could mean Excel, Extra, Expertise, etc.

Question mark (?) โ€“ Represents any 1 character. For example, R?ain may mean Rain or Ruin.

Tilde (~) โ€“ Used to identify a wildcard character (~, *, ?). For example, If you need to find the exact phrase India* in a list. If you use India* as the search string, you may get any word with India at the beginning followed by different characters (such as Indian, Indiana). If you have to look for Indiaโ€ exclusively, use ~.

Hence, the search string will be india~*. ~ is used to ensure that the spreadsheet reads the following character as is, and not as a wildcard.


2.What is cascading filter in tableau?

Ans: Cascading filters can also be understood as giving preference to a particular filter and then applying other filters on previously filtered data source. Right-click on the filter you want to use as a main filter and make sure it is set as all values in dashboard then select the subsequent filter and select only relevant values to cascade the filters. This will improve the performance of the dashboard as you have decreased the time wasted in running all the filters over complete data source.


3.What is the difference between .twb and .twbx extension?

Ans:
A .twb file contains information on all the sheets, dashboards and stories, but it wonโ€™t contain any information regarding data source. Whereas .twbx file contains all the sheets, dashboards, stories and also compressed data sources. For saving a .twbx extract needs to be performed on the data source. If we forward .twb file to someone else than they will be able to see the worksheets and dashboards but wonโ€™t be able to look into the dataset.


4.What are the various Power BI versions?

Power BI Premium capacity-based license, for example, allows users with a free license to act on content in workspaces with Premium capacity. A user with a free license can only use the Power BI service to connect to data and produce reports and dashboards in My Workspace outside of Premium capacity. They are unable to exchange material or publish it in other workspaces. To process material, a Power BI license with a free or Pro per-user license only uses a shared and restricted capacity. Users with a Power BI Pro license can only work with other Power BI Pro users if the material is stored in that shared capacity. They may consume user-generated information, post material to app workspaces, share dashboards, and subscribe to dashboards and reports. Pro users can share material with users who donโ€™t have a Power BI Pro subscription while workspaces are at Premium capacity.

ENJOY LEARNING ๐Ÿ‘๐Ÿ‘
โค4