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
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام 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 — أهم رؤى العام 
