Data Analytics
Perfect channel to learn Data Analytics Learn SQL, Python, Alteryx, Tableau, Power BI and many more For Promotions: @coderfun @love_data
Mostrar más📈 Análisis del canal de Telegram Data Analytics
El canal Data Analytics (@sqlspecialist) en el segmento lingüístico de Inglés es un actor destacado. Actualmente la comunidad reúne a 109 733 suscriptores, ocupando la posición 1 113 en la categoría Tecnologías y Aplicaciones y el puesto 2 324 en la región India.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 109 733 suscriptores.
Según los últimos datos del 27 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de 610, y en las últimas 24 horas de 45, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 2.51%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 1.12% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 2 753 visualizaciones. En el primer día suele acumular 1 230 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 7.
- Intereses temáticos: El contenido se centra en temas clave como row, sql, analytic, analyst, visualization.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Perfect channel to learn Data Analytics
Learn SQL, Python, Alteryx, Tableau, Power BI and many more
For Promotions: @coderfun @love_data”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 28 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
Total Sales = Sales[Quantity] * Sales[Unit Price]
Measure:
- Definition: A measure is a dynamic calculation that is computed at query time. It is also defined using DAX but is not stored in the data model; instead, it is recalculated as needed.
- Calculation Context: Computed dynamically based on the filter context of the report visuals (e.g., slicers, rows, columns).
- Use Case: Best for aggregate-level calculations, such as sums, averages, or more complex aggregations across the entire dataset.
- Example: Calculating the total sales for the filtered context in a report visual.
Total Sales = SUM(Sales[Quantity] * Sales[Unit Price])
Key Differences:
- Storage: Calculated columns are stored in the data model, whereas measures are computed on the fly.
- Context: Calculated columns are static once created and independent of the visual context, while measures are dynamic and depend on the context of the report visual.
- Performance: Calculated columns can increase the data model size, potentially impacting performance. Measures do not affect the data model size but can impact performance if the calculations are complex and the data is large.
Tips:
- Use calculated columns sparingly to avoid unnecessary increases in model size.
- Prefer measures for calculations that need to be dynamic and context-aware.
- Regularly review your data model to ensure optimal use of calculated columns and measures.
You can refer these Power BI Resources to learn more
Like this post if you want me to continue this Power BI series 👍♥️
Share with credits: https://t.me/sqlspecialist
Hope it helps :) DELETE FROM employees WHERE department_id = 10;
- TRUNCATE: This command is used to delete all rows from a table. It is a DDL (Data Definition Language) operation. It is faster than DELETE because it deallocates the data pages rather than logging individual row deletions. It cannot be rolled back in some databases because it does not log individual row deletions.
TRUNCATE TABLE employees;
Tip: Mention that DELETE can be more flexible when you need to remove specific rows, while TRUNCATE is more efficient for removing all rows. Also, point out that TRUNCATE resets any auto-increment counters on the table and may require higher privileges compared to DELETE.
Share with credits: https://t.me/sqlspecialist
Like this post if you want me to continue SQL Interview Preparation Series 👍❤️
Hope it helps :)WITH DuplicateCTE AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY column1, column2, ... ORDER BY (SELECT NULL)) as row_num
FROM
table_name
)
SELECT * FROM DuplicateCTE WHERE row_num > 1;
Example to delete duplicates:
WITH DuplicateCTE AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY column1, column2, ... ORDER BY (SELECT NULL)) as row_num
FROM
table_name
)
DELETE FROM DuplicateCTE WHERE row_num > 1;
In these examples, replace column1, column2, ... with the columns that define a duplicate.
Tip: Emphasize the importance of carefully choosing the columns in the PARTITION BY clause to accurately identify duplicates. Also, mention that the ORDER BY (SELECT NULL) is used to avoid influencing the row numbering, but a specific column can be used if a specific order is needed.
Share with credits: https://t.me/sqlspecialist
Like this post if you want me to continue SQL Interview Preparation Series 👍❤️
Hope it helps :)SELECT e1.name AS Employee, e2.name AS Manager
FROM employees e1
JOIN employees e2 ON e1.manager_id = e2.id;
In this example, the employees table is joined with itself to find the manager for each employee.
Tip: Explain that self joins are particularly useful for hierarchical data, such as organizational charts, and emphasize the importance of using table aliases (e.g., e1 and e2) to differentiate between the different instances of the same table.
Share with credits: https://t.me/sqlspecialist
Like this post if you want me to continue SQL Interview Preparation Series 👍❤️
Hope it helps :)SELECT, INSERT, UPDATE, or DELETE statement. CTEs are defined using the WITH keyword and can improve the readability and organization of complex queries.
Example:
WITH EmployeeCTE AS (
SELECT department_id, AVG(salary) as avg_salary
FROM employees
GROUP BY department_id
)
SELECT e.name, e.salary, e.department_id, c.avg_salary
FROM employees e
JOIN EmployeeCTE c ON e.department_id = c.department_id
WHERE e.salary > c.avg_salary;
In this example, the CTE EmployeeCTE calculates the average salary per department, which is then used in the main query to find employees earning above the average salary in their department.
Tip: Explain that CTEs can be particularly useful for breaking down complex queries into more manageable parts, improving both readability and maintainability. They also allow for recursive queries, which can be useful in hierarchical data structures.
Share with credits: https://t.me/sqlspecialist
Like this post if you want me to continue SQL Interview Preparation Series 👍❤️
Hope it helps :)SELECT name, salary, department_id,
ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) as row_num
FROM employees;
In this example, ROW_NUMBER() assigns a unique rank to each row within each department, ordered by salary in descending order.
Tip: Highlight the usefulness of window functions for complex analytics and reporting tasks, where you need to perform calculations across rows while still returning individual rows. Explain other common window functions like RANK(), DENSE_RANK(), and NTILE().
Share with credits: https://t.me/sqlspecialist
Like this post if you want me to continue SQL Interview Preparation Series 👍❤️
Hope it helps :)SELECT MAX(salary)
FROM employees
WHERE salary < (SELECT MAX(salary) FROM employees);
Tip: Explain that this approach can be useful when the LIMIT clause is not supported or if you want to demonstrate proficiency in using subqueries.
Share with credits: https://t.me/sqlspecialist
Like this post if you want me to continue SQL Interview Preparation Series 👍❤️
Hope it helps :)SELECT DISTINCT salary
FROM employees
ORDER BY salary DESC
LIMIT n-1, 1;
Replace 'n' with the desired rank of the salary.
Tip: Emphasize the importance of using DISTINCT to handle cases where there are duplicate salaries, and ensure the ORDER BY clause is sorting the salaries in descending order to find the nth highest salary.
Share with credits: https://t.me/sqlspecialist
Like this post if you want me to continue SQL Interview Preparation Series 👍❤️
Hope it helps :)SELECT, FROM, WHERE, and HAVING.
Types of Subqueries:
- Single-row subquery: Returns a single row and is used with operators like =, <, >.
- Multi-row subquery: Returns multiple rows and is used with operators like IN, ANY, ALL.
- Correlated subquery: A subquery that references columns from the outer query. It is evaluated once for each row processed by the outer query.
Examples:
- Single-row subquery:
SELECT name
FROM employees
WHERE department_id = (SELECT id FROM departments WHERE department_name = 'Sales');
- Multi-row subquery:
SELECT name
FROM employees
WHERE department_id IN (SELECT id FROM departments WHERE region = 'North');
- Correlated subquery:
SELECT e.name
FROM employees e
WHERE e.salary > (SELECT AVG(salary) FROM employees WHERE department_id = e.department_id);
Go though SQL Learning Series to refresh your basics
Share with credits: https://t.me/sqlspecialist
Like this post if you want me to continue SQL Interview Preparation Series 👍❤️
Hope it helps :) CREATE TABLE customers (
customer_id INT PRIMARY KEY,
customer_name VARCHAR(100),
contact_number VARCHAR(15)
);
- Second Normal Form (2NF): Achieves 1NF and ensures that all non-key attributes are fully functionally dependent on the primary key. This means removing partial dependencies of any column on the primary key.
- Example: If a table has a composite key (e.g., order_id, product_id) and some columns depend only on part of that key, those columns should be moved to another table.
- Third Normal Form (3NF): Achieves 2NF and ensures that all the attributes are functionally dependent only on the primary key. This eliminates transitive dependencies.
- Example:
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
CREATE TABLE order_details (
order_id INT,
product_id INT,
quantity INT,
PRIMARY KEY (order_id, product_id),
FOREIGN KEY (order_id) REFERENCES orders(order_id)
);
- Boyce-Codd Normal Form (BCNF): A stricter version of 3NF where every determinant is a candidate key. This addresses situations where 3NF is not sufficient to eliminate all redundancies.
Tricky Question:
- How would you approach normalizing a table that contains repeating groups of data?
- This question tests the understanding of the concept of atomicity and the process of transforming a table into 1NF.
Example Answer:
- "If a table contains repeating groups, such as multiple phone numbers in one column separated by commas, I would first ensure that each piece of data is atomic. I would create a separate table for the repeating group and link it with a foreign key to the original table, thereby normalizing the data into 1NF."
Go though SQL Learning Series to refresh your basics
Share with credits: https://t.me/sqlspecialist
Like this post if you want me to continue SQL Interview Preparation Series 👍❤️
Hope it helps :)INNER JOIN and OUTER JOIN?
- INNER JOIN: Returns only the rows where there is a match in both tables.
- OUTER JOIN: Returns the matched rows as well as unmatched rows from one or both tables. There are three types of OUTER JOIN:
- LEFT OUTER JOIN (or LEFT JOIN): Returns all rows from the left table, and the matched rows from the right table. If no match is found, the result is NULL on the right side.
- RIGHT OUTER JOIN (or RIGHT JOIN): Returns all rows from the right table, and the matched rows from the left table. If no match is found, the result is NULL on the left side.
- FULL OUTER JOIN: Returns rows when there is a match in one of the tables. This means it returns all rows from the left table and the right table, filling in NULLs when there is no match.
Examples:
- INNER JOIN:
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;
- LEFT JOIN:
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;
- RIGHT JOIN:
SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments ON employees.department_id = departments.id;
- FULL OUTER JOIN:
SELECT employees.name, departments.department_name
FROM employees
FULL OUTER JOIN departments ON employees.department_id = departments.id;
Go though SQL Learning Series to refresh your basics
Share with credits: https://t.me/sqlspecialist
Like this post if you want me to continue SQL Interview Preparation Series 👍❤️
Hope it helps :)CREATE, ALTER, DROP
- Example:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
position VARCHAR(50)
);
- DML (Data Manipulation Language): These commands are used to manipulate the data within the database.
- Examples: SELECT, INSERT, UPDATE, DELETE
- Example:
INSERT INTO employees (id, name, position) VALUES (1, 'John Doe', 'Manager');
- DCL (Data Control Language): These commands are used to control access to data within the database.
- Examples: GRANT, REVOKE
- Example:
GRANT SELECT ON employees TO user_name;
- TCL (Transaction Control Language): These commands are used to manage transactions in the database.
- Examples: COMMIT, ROLLBACK, SAVEPOINT
- Example:
BEGIN;
UPDATE employees SET position = 'Senior Manager' WHERE id = 1;
COMMIT;
Share with credits: https://t.me/sqlspecialist
Like this post if you want me to continue SQL Interview Preparation Series 👍❤️
Hope it helps :)WITH cte_name AS (
SELECT column1, column2
FROM table_name
WHERE condition
)
SELECT column1, column2
FROM cte_name
WHERE another_condition;
Example Problem:
Find the top 3 highest-paid employees in each department.
Solution Using CTE:
WITH RankedSalaries AS (
SELECT
employee_id,
department_id,
salary,
ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank
FROM employees
)
SELECT
employee_id,
department_id,
salary
FROM RankedSalaries
WHERE rank <= 3;
2. Window Functions:
Window functions perform calculations across a set of table rows related to the current row. They do not reduce the number of rows returned.
Common Window Functions:
- ROW_NUMBER(): Assigns a unique number to each row within the partition.
- RANK(): Assigns a rank to each row within the partition, with gaps in ranking for ties.
- DENSE_RANK(): Similar to RANK(), but without gaps.
- SUM(), AVG(), COUNT(), etc., over a partition.
Syntax:
SELECT column1,
column2,
window_function() OVER (PARTITION BY column1 ORDER BY column2) AS window_column
FROM table_name;
Example Problem:
Calculate the running total of sales for each salesperson.
Solution Using Window Function:
SELECT
salesperson_id,
sale_date,
amount,
SUM(amount) OVER (PARTITION BY salesperson_id ORDER BY sale_date) AS running_total
FROM sales;
Combining CTEs and Window Functions:
Example Problem:
Find the cumulative sales per department and the rank of each employee within their department based on their sales.
Solution:
WITH DepartmentSales AS (
SELECT
department_id,
employee_id,
SUM(sales_amount) AS total_sales
FROM sales
GROUP BY department_id, employee_id
),
RankedSales AS (
SELECT
department_id,
employee_id,
total_sales,
RANK() OVER (PARTITION BY department_id ORDER BY total_sales DESC) AS sales_rank
FROM DepartmentSales
)
SELECT
department_id,
employee_id,
total_sales,
sales_rank,
SUM(total_sales) OVER (PARTITION BY department_id ORDER BY sales_rank) AS cumulative_sales
FROM RankedSales;
For those of you who are new to this channel read SQL Basics before going through advanced concepts 😄
Part-1: https://t.me/sqlspecialist/558
Share with credits: https://t.me/sqlspecialist
Like this post if you want me to continue SQL Interview Preparation Series 👍❤️
Hope it helps :)
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
