Data Analytics
Perfect channel to learn Data Analytics Learn SQL, Python, Alteryx, Tableau, Power BI and many more For Promotions: @coderfun @love_data
Показати більше📈 Аналітичний огляд Telegram-каналу 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 :)
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
