Data Analytics
Perfect channel to learn Data Analytics Learn SQL, Python, Alteryx, Tableau, Power BI and many more For Promotions: @coderfun @love_data
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Data Analytics
تُعد قناة Data Analytics (@sqlspecialist) في القطاع اللغوي الإنكليزية لاعباً نشطاً. يضم المجتمع حالياً 109 708 مشتركاً، محتلاً المرتبة 1 117 في فئة التكنولوجيات والتطبيقات والمرتبة 2 334 في منطقة الهند.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 109 708 مشتركاً.
بحسب آخر البيانات بتاريخ 25 يونيو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار 596، وفي آخر 24 ساعة بمقدار 55، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 2.69%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 0.78% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 2 948 مشاهدة. وخلال اليوم الأول يجمع عادةً 853 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 8.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل row, sql, analytic, analyst, visualization.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Perfect channel to learn Data Analytics
Learn SQL, Python, Alteryx, Tableau, Power BI and many more
For Promotions: @coderfun @love_data”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 26 يونيو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
FunctionName() OVER ( PARTITION BY ColumnName ORDER BY ColumnName )
4. Examples
a) Aggregate with PARTITION
Calculate total salary for each department:
SELECT EmployeeID, DepartmentID, Salary, SUM(Salary) OVER (PARTITION BY DepartmentID) AS TotalSalary FROM Employees;
In Department 101, if employees earn 5000, 6000, and 4000, the total salary for all rows is 15000.
In Department 102, with only one employee earning 7000, the total salary is 7000.
b) ROW_NUMBER
Assign a unique number to each row based on salary:
SELECT EmployeeID, Name, ROW_NUMBER() OVER (ORDER BY Salary DESC) AS RowNumber FROM Employees;
If salaries are 7000, 6000, 5000, employees are ranked as 1, 2, and 3 respectively.
c) RANK and DENSE_RANK
Rank employees based on salary:
SELECT EmployeeID, Name, Salary, RANK() OVER (ORDER BY Salary DESC) AS Rank, DENSE_RANK() OVER (ORDER BY Salary DESC) AS DenseRank FROM Employees;
With salaries 7000, 6000, 6000:
RANK: 1, 2, 2 (skips 3 for ties).
DENSE_RANK: 1, 2, 2 (does not skip numbers for ties).
d) LAG and LEAD
Fetch the previous and next salaries in a sequence:
SELECT EmployeeID, Name, Salary, LAG(Salary) OVER (ORDER BY Salary) AS PreviousSalary, LEAD(Salary) OVER (ORDER BY Salary) AS NextSalary FROM Employees;
For salaries 4000, 5000, 6000:
PreviousSalary: NULL, 4000, 5000.
NextSalary: 5000, 6000, NULL.
5. Key Takeaways
PARTITION BY groups data into subsets for calculations.
ORDER BY defines the sequence for calculations.
Use window functions to analyze data efficiently without grouping rows.
Action Steps
- Write a query using SUM() and PARTITION BY to calculate group totals.
- Use ROW_NUMBER to rank rows based on any column.
- Experiment with LAG and LEAD to fetch previous and next row values.
🔝 SQL 30 Days Challenge
Here you can find SQL Interview Resources👇
https://t.me/sqlanalyst
Like this post if you want me to continue this SQL series 👍♥️
Share with credits: https://t.me/sqlspecialist
Hope it helps :)WITH CTE_Name (Column1, Column2, ...)
AS
(
SELECT Column1, Column2
FROM TableName
WHERE Condition
)
SELECT * FROM CTE_Name;
3. Example of a CTE
Simple CTE:
WITH EmployeeCTE AS
(
SELECT EmployeeID, Name, Salary
FROM Employees
WHERE Salary > 5000
)
SELECT * FROM EmployeeCTE;
4. Recursive CTE
A recursive CTE refers to itself and is commonly used to query hierarchical data like organizational charts or folder structures.
Syntax:
WITH RecursiveCTE (Column1, Column2, ...)
AS
(
-- Anchor member
SELECT Column1, Column2
FROM TableName
WHERE Condition
UNION ALL
-- Recursive member
SELECT Column1, Column2
FROM TableName
INNER JOIN RecursiveCTE
ON TableName.ParentID = RecursiveCTE.ID
)
SELECT * FROM RecursiveCTE;
5. Example of a Recursive CTE
Hierarchy of Employees:
WITH EmployeeHierarchy AS
(
-- Anchor member
SELECT EmployeeID, ManagerID, Name
FROM Employees
WHERE ManagerID IS NULL
UNION ALL
-- Recursive member
SELECT e.EmployeeID, e.ManagerID, e.Name
FROM Employees e
INNER JOIN EmployeeHierarchy eh
ON e.ManagerID = eh.EmployeeID
)
SELECT * FROM EmployeeHierarchy;
6. Key Points to Remember
1. Use CTEs to break down complex queries for better readability.
2. Recursive CTEs must include:
An anchor member (base case).
A recursive member with a termination condition (e.g., ManagerID IS NULL).
3. Recursive queries must include a UNION ALL operator.
7. Benefits of CTEs
1. Improved query readability.
2. Simplifies hierarchical or recursive queries.
3. Can be referenced multiple times within the same query.
Action Steps
1. Write a simple CTE to filter data from a table.
2. Create a recursive CTE to display a hierarchical structure like an organization chart.
3. Test your recursive CTE with a termination condition to avoid infinite loops.
🔝 SQL 30 Days Challenge
Here you can find SQL Interview Resources👇
https://topmate.io/analyst/864764
Like this post if you want me to continue this SQL series 👍♥️
Share with credits: https://t.me/sqlspecialist
Hope it helps :)WITH CTE_Name (Column1, Column2, ...)
AS
(
SELECT Column1, Column2
FROM TableName
WHERE Condition
)
SELECT * FROM CTE_Name;
3. Example of a CTE
Simple CTE:
WITH EmployeeCTE AS
(
SELECT EmployeeID, Name, Salary
FROM Employees
WHERE Salary > 5000
)
SELECT * FROM EmployeeCTE;
4. Recursive CTE
A recursive CTE refers to itself and is commonly used to query hierarchical data like organizational charts or folder structures.
Syntax:
WITH RecursiveCTE (Column1, Column2, ...)
AS
(
-- Anchor member
SELECT Column1, Column2
FROM TableName
WHERE Condition
UNION ALL
-- Recursive member
SELECT Column1, Column2
FROM TableName
INNER JOIN RecursiveCTE
ON TableName.ParentID = RecursiveCTE.ID
)
SELECT * FROM RecursiveCTE;
5. Example of a Recursive CTE
Hierarchy of Employees:
WITH EmployeeHierarchy AS
(
-- Anchor member
SELECT EmployeeID, ManagerID, Name
FROM Employees
WHERE ManagerID IS NULL
UNION ALL
-- Recursive member
SELECT e.EmployeeID, e.ManagerID, e.Name
FROM Employees e
INNER JOIN EmployeeHierarchy eh
ON e.ManagerID = eh.EmployeeID
)
SELECT * FROM EmployeeHierarchy;
6. Key Points to Remember
1. Use CTEs to break down complex queries for better readability.
2. Recursive CTEs must include:
An anchor member (base case).
A recursive member with a termination condition (e.g., ManagerID IS NULL).
3. Recursive queries must include a UNION ALL operator.
7. Benefits of CTEs
1. Improved query readability.
2. Simplifies hierarchical or recursive queries.
3. Can be referenced multiple times within the same query.
Action Steps
1. Write a simple CTE to filter data from a table.
2. Create a recursive CTE to display a hierarchical structure like an organization chart.
3. Test your recursive CTE with a termination condition to avoid infinite loops.
🔝 SQL 30 Days Challenge
Here you can find SQL Interview Resources👇
https://topmate.io/analyst/864764
Like this post if you want me to continue this SQL series 👍♥️
Share with credits: https://t.me/sqlspecialist
Hope it helps :)CREATE VIEW ViewName AS
SELECT Column1, Column2
FROM TableName
WHERE Condition;
2. Using a View:
SELECT * FROM ViewName;
3. Updating a View:
Views can often be updated if based on a single table and meet certain criteria.
Example:
UPDATE ViewName
SET Column1 = 'NewValue'
WHERE Condition;
4. Dropping a View:
DROP VIEW ViewName;
2. Stored Procedures
A stored procedure is a set of SQL statements stored in the database and executed as a single unit.
1. Creating a Stored Procedure:
CREATE PROCEDURE ProcedureName
AS
BEGIN
SELECT * FROM TableName WHERE Condition;
END;
2. Executing a Stored Procedure:
EXEC ProcedureName;
3. Stored Procedure with Parameters:
CREATE PROCEDURE GetEmployeeDetails @EmployeeID INT
AS
BEGIN
SELECT * FROM Employees WHERE EmployeeID = @EmployeeID;
END;
Execution:
EXEC GetEmployeeDetails @EmployeeID = 1;
4. Dropping a Stored Procedure:
DROP PROCEDURE ProcedureName;
3. Triggers
Triggers are SQL code automatically executed in response to specific events on a table.
1. Types of Triggers:
AFTER Trigger: Executes after an INSERT, UPDATE, or DELETE operation.
INSTEAD OF Trigger: Replaces the triggering action.
2. Creating an AFTER Trigger:
CREATE TRIGGER TriggerName
ON TableName
AFTER INSERT, UPDATE, DELETE
AS
BEGIN
PRINT 'Trigger executed';
END;
3. Example: Logging Changes:
CREATE TRIGGER LogChanges
ON Employees
AFTER UPDATE
AS
BEGIN
INSERT INTO AuditLog (EmployeeID, ChangeTime)
SELECT EmployeeID, GETDATE()
FROM Inserted;
END;
4. Dropping a Trigger:
DROP TRIGGER TriggerName;
4. Use Cases
1. Views: Simplify reporting or provide restricted access to data.
2. Stored Procedures: Automate repetitive tasks or enforce business logic.
3. Triggers: Automatically maintain audit trails or enforce rules.
Action Steps
1. Create a view to simplify a complex query.
2. Write a stored procedure to retrieve specific data based on a parameter.
3. Create a trigger to log changes in a table.
🔝 SQL 30 Days Challenge
Here you can find SQL Interview Resources👇
https://topmate.io/analyst/864764
Like this post if you want me to continue this SQL series 👍♥️
Share with credits: https://t.me/sqlspecialist
Hope it helps :)BEGIN TRANSACTION;
-- Deduct from sender's account
UPDATE Accounts
SET Balance = Balance - 1000
WHERE AccountID = 1;
-- Add to receiver's account
UPDATE Accounts
SET Balance = Balance + 1000
WHERE AccountID = 2;
-- Check for errors
IF @@ERROR <> 0
BEGIN
ROLLBACK;
PRINT 'Transaction Failed';
END
ELSE
BEGIN
COMMIT;
PRINT 'Transaction Successful';
END;
5. Error Handling
1. TRY...CATCH: Handle errors and ensure proper cleanup in case of failure.
Syntax:
BEGIN TRY
-- SQL statements
END TRY
BEGIN CATCH
-- Error handling code
END CATCH
2. Example with TRY...CATCH:
BEGIN TRY
BEGIN TRANSACTION;
-- Insert operation
INSERT INTO Employees (Name, Salary) VALUES ('John', 5000);
-- Error-prone operation
INSERT INTO Employees (Name, Salary) VALUES (NULL, NULL);
COMMIT;
END TRY
BEGIN CATCH
ROLLBACK;
PRINT 'Error occurred: ' + ERROR_MESSAGE();
END CATCH;
3. @@ERROR:
A system function that returns the error code of the last T-SQL statement.
6. Isolation Levels
Control how transactions interact with each other.
1. Read Uncommitted: Allows dirty reads.
2. Read Committed: Prevents dirty reads.
3. Repeatable Read: Prevents non-repeatable reads.
4. Serializable: Prevents dirty, non-repeatable, and phantom reads.
Syntax:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION;
-- SQL operations
COMMIT;
Action Steps
1. Write a transaction with BEGIN TRANSACTION, COMMIT, and ROLLBACK.
2. Implement error handling using TRY...CATCH.
3. Experiment with different isolation levels in test scenarios.
🔝 SQL 30 Days Challenge
Here you can find SQL Interview Resources👇
https://topmate.io/analyst/864764
Like this post if you want me to continue this SQL series 👍♥️
Share with credits: https://t.me/sqlspecialist
Hope it helps :)
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
