Data Analysis Books | Python | SQL | Excel | Artificial Intelligence | Power BI | Tableau | AI Resources
Data Analysis Useful Resources #dataanalysis #dataanalysisbooks #sqlbooks #pythonbooks #tableau #powerbi #datavisualization For promotions: @coderfun
显示更多📈 Telegram 频道 Data Analysis Books | Python | SQL | Excel | Artificial Intelligence | Power BI | Tableau | AI Resources 的分析概览
频道 Data Analysis Books | Python | SQL | Excel | Artificial Intelligence | Power BI | Tableau | AI Resources (@learndataanalysis) 英语 语言赛道中的 是活跃参与者。目前社区聚集了 51 819 名订阅者,在 教育 类别中位列第 3 359,并在 印度 地区排名第 7 261 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 51 819 名订阅者。
根据 13 六月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 494,过去 24 小时变化为 39,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 7.77%。内容发布后 24 小时内通常能获得 1.34% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 4 024 次浏览,首日通常累积 693 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 8。
- 主题关注点: 内容集中在 analyst, |--, excel, visualization, analytic 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“Data Analysis Useful Resources
#dataanalysis
#dataanalysisbooks
#sqlbooks
#pythonbooks
#tableau
#powerbi
#datavisualization
For promotions: @coderfun”
凭借高频更新(最新数据采集于 14 六月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 教育 类别中的关键影响点。
SELECT AVG(salary) AS average_salary FROM employees;
Find Median (Using Window Functions) SELECT salary FROM ( SELECT salary, ROW_NUMBER() OVER (ORDER BY salary) AS row_num, COUNT(*) OVER () AS total_rows FROM employees ) subquery WHERE row_num = (total_rows / 2);
Find Mode (Most Frequent Value)
SELECT department, COUNT(*) AS count FROM employees GROUP BY department ORDER BY count DESC LIMIT 1;
Calculate Variance & Standard Deviation
SELECT VARIANCE(salary) AS salary_variance, STDDEV(salary) AS salary_std_dev FROM employees;
In Python (Pandas):
Mean, Median, Mode
df['salary'].mean() df['salary'].median() df['salary'].mode()[0]
Variance & Standard Deviation
df['salary'].var() df['salary'].std()
2️⃣ Data Visualization
Visualizing data helps identify trends, outliers, and patterns.
In SQL (For Basic Visualization in Some Databases Like PostgreSQL):
Create Histogram (Approximate in SQL)
SELECT salary, COUNT(*) FROM employees GROUP BY salary ORDER BY salary;
In Python (Matplotlib & Seaborn):
Bar Chart (Category-Wise Sales)
import matplotlib.pyplot as plt
import seaborn as sns
df.groupby('category')['sales'].sum().plot(kind='bar')
plt.title('Total Sales by Category')
plt.xlabel('Category')
plt.ylabel('Sales')
plt.show()
Histogram (Salary Distribution)
sns.histplot(df['salary'], bins=10, kde=True)
plt.title('Salary Distribution')
plt.show()
Box Plot (Outliers in Sales Data)
sns.boxplot(y=df['sales'])
plt.title('Sales Data Outliers')
plt.show()
Heatmap (Correlation Between Variables)
sns.heatmap(df.corr(), annot=True, cmap='coolwarm') plt.title('Feature Correlation Heatmap') plt.show()
3️⃣ Detecting Anomalies & Outliers
Outliers can skew results and should be identified.
In SQL:
Find records with unusually high salaries
SELECT * FROM employees WHERE salary > (SELECT AVG(salary) + 2 * STDDEV(salary) FROM employees);
In Python (Pandas & NumPy):
Using Z-Score (Values Beyond 3 Standard Deviations)
from scipy import stats df['z_score'] = stats.zscore(df['salary']) df_outliers = df[df['z_score'].abs() > 3]
Using IQR (Interquartile Range)
Q1 = df['salary'].quantile(0.25)
Q3 = df['salary'].quantile(0.75)
IQR = Q3 - Q1
df_outliers = df[(df['salary'] < (Q1 - 1.5 * IQR)) | (df['salary'] > (Q3 + 1.5 * IQR))]
4️⃣ Key EDA Steps
Understand the Data → Check missing values, duplicates, and column types
Summarize Statistics → Mean, Median, Standard Deviation, etc.
Visualize Trends → Histograms, Box Plots, Heatmaps
Detect Outliers & Anomalies → Z-Score, IQR
Feature Engineering → Transform variables if needed
Mini Task for You: Write an SQL query to find employees whose salaries are above two standard deviations from the mean salary.
Here you can find the roadmap for data analyst: https://t.me/sqlspecialist/1159
Like this post if you want me to continue covering all the topics! ❤️
Share with credits: https://t.me/sqlspecialist
Hope it helps :)
#sqlSELECT e.name, e.salary, d.department_name
FROM employees e
INNER JOIN departments d ON e.department = d.department_id;
• LEFT JOIN: Returns all rows from the left table and matched rows from the right table. If no match, returns NULL.
SELECT e.name, e.salary, d.department_name
FROM employees e
LEFT JOIN departments d ON e.department = d.department_id;
• RIGHT JOIN: Returns all rows from the right table and matched rows from the left table. If no match, returns NULL.
SELECT e.name, e.salary, d.department_name
FROM employees e
RIGHT JOIN departments d ON e.department = d.department_id;
• FULL OUTER JOIN: Returns all rows when there is a match in one of the tables.
SELECT e.name, e.salary, d.department_name
FROM employees e
FULL OUTER JOIN departments d ON e.department = d.department_id;
6. Subqueries and Nested Queries
Subqueries are queries embedded inside other queries. They can be used in the SELECT, FROM, and WHERE clauses.
Correlated Subqueries
A correlated subquery references columns from the outer query.
-- Find employees with salaries above the average salary of their department
SELECT name, salary
FROM employees e1
WHERE salary > (SELECT AVG(salary)
FROM employees e2
WHERE e1.department = e2.department);
Using Subqueries in SELECT
You can also use subqueries in the SELECT statement:
SELECT name,
(SELECT AVG(salary) FROM employees) AS avg_salary
FROM employees;
7. Advanced SQL
Window Functions
Window functions perform calculations across a set of table rows related to the current row. They do not collapse rows like GROUP BY.
-- Rank employees by salary within each department
SELECT name, department, salary,
RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS rank
FROM employees;
Common Table Expressions (CTEs)
A CTE is a temporary result set that can be referenced within a SELECT, INSERT, UPDATE, or DELETE statement.
-- Calculate department-wise average salary using a CTE
WITH avg_salary_cte AS (
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
)
SELECT e.name, e.salary, a.avg_salary
FROM employees e
JOIN avg_salary_cte a ON e.department = a.department;
8. Data Transformation and Cleaning
CASE Statements
The CASE statement allows you to perform conditional logic within SQL queries.
-- Categorize employees based on salary
SELECT name,
CASE
WHEN salary < 50000 THEN 'Low'
WHEN salary BETWEEN 50000 AND 100000 THEN 'Medium'
ELSE 'High'
END AS salary_category
FROM employees;
String Functions
SQL offers several functions to manipulate strings:
-- Concatenate first and last names
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;
-- Trim extra spaces from a string
SELECT TRIM(name) FROM employees;
Date and Time Functions
SQL allows you to work with date and time values:
-- Calculate tenure in days
SELECT name, DATEDIFF(CURDATE(), hire_date) AS days_tenure
FROM employees;
9. Database Management
Indexing
Indexes improve query performance by allowing faster retrieval of rows.
-- Create an index on the department column for faster lookups
CREATE INDEX idx_department ON employees(department);
Views
A view is a virtual table based on the result of a query. It simplifies complex queries by allowing you to reuse the logic.
-- Create a view for high-salary employees
CREATE VIEW high_salary_employees AS
SELECT name, salary
FROM employees
WHERE salary > 100000;
-- Query the view
SELECT * FROM high_salary_employees;
Transactions
A transaction ensures that a series of SQL operations are completed successfully. If any part fails, the entire transaction can be rolled back to maintain data integrity.
-- -- Transaction example
START TRANSACTION;
UPDATE employees SET salary = salary + 5000 WHERE department = 'HR';
DELETE FROM employees WHERE id = 10;
COMMIT; -- Commit the transaction if all
Best SQL Interview Resources-- Create a table with columns for ID, name, salary, and hire date
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
salary DECIMAL(10, 2),
hire_date DATE
);
-- Alter an existing table to add a new column for department
ALTER TABLE employees ADD department VARCHAR(50);
-- Drop a table (delete it from the database)
DROP TABLE employees;
Data Insertion, Updating, and Deletion
SQL allows you to manipulate data using INSERT, UPDATE, and DELETE commands:
-- Insert a new employee record
INSERT INTO employees (id, name, salary, hire_date, department)
VALUES (1, 'Alice', 75000.00, '2022-01-15', 'HR');
-- Update the salary of employee with id 1
UPDATE employees
SET salary = 80000
WHERE id = 1;
-- Delete the employee record with id 1
DELETE FROM employees WHERE id = 1;
3. Data Retrieval
SELECT Statement
The SELECT statement is used to retrieve data from a database:
SELECT * FROM employees; -- Retrieve all columns
SELECT name, salary FROM employees; -- Retrieve specific columns
Filtering Data with WHERE
The WHERE clause filters data based on specific conditions:
SELECT * FROM employees
WHERE salary > 60000 AND department = 'HR'; -- Filter records based on salary and department
Sorting Data with ORDER BY
The ORDER BY clause sorts the result set by one or more columns:
SELECT * FROM employees
ORDER BY salary DESC; -- Sort by salary in descending order
Aliasing
You can use aliases to rename columns or tables for clarity:
SELECT name AS employee_name, salary AS monthly_salary FROM employees;
4. Aggregate Functions
Aggregate functions perform calculations on a set of values and return a single result.
Common Aggregate Functions
SELECT COUNT(*) AS total_employees, AVG(salary) AS average_salary
FROM employees; -- Count total employees and calculate the average salary
GROUP BY and HAVING
• GROUP BY is used to group rows sharing the same value in a column.
• HAVING filters groups based on aggregate conditions.
-- Find average salary by department
SELECT department, AVG(salary) AS average_salary
FROM employees
GROUP BY department;
-- Filter groups with more than 5 employees
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;
5. Joins
Joins are used to combine rows from two or more tables based on related columns.
Types of Joins
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
