SQL Programming Resources
Find top SQL resources from global universities, cool projects, and learning materials for data analytics. Admin: @coderfun Useful links: heylink.me/DataAnalytics Promotions: @love_data
Mostrar más📈 Análisis del canal de Telegram SQL Programming Resources
El canal SQL Programming Resources (@sqlanalyst) en el segmento lingüístico de Inglés es un actor destacado. Actualmente la comunidad reúne a 76 536 suscriptores, ocupando la posición 1 677 en la categoría Tecnologías y Aplicaciones y el puesto 4 007 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 76 536 suscriptores.
Según los últimos datos del 25 octubre, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -171, y en las últimas 24 horas de -10, 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.69%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 1.02% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 2 062 visualizaciones. En el primer día suele acumular 779 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 5.
- Intereses temáticos: El contenido se centra en temas clave como row, sql, customer_id, logic, desc.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Find top SQL resources from global universities, cool projects, and learning materials for data analytics.
Admin: @coderfun
Useful links: heylink.me/DataAnalytics
Promotions: @love_data”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 26 octubre, 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.
employee_id | employee_name | department | salary
------------|---------------|------------|-------
1 | Amit | IT | 50000
2 | Rahul | IT | 80000
3 | Priya | HR | 60000
4 | Neha | HR | 90000
5 | Raj | Finance | 70000
❓ Find all employees whose salary is greater than the average salary of the entire company.
💡 Approach
First, calculate the average salary across all employees.
Then compare every employee's salary with that average.
Company average:
(50000 + 80000 + 60000 + 90000 + 70000) / 5
= 70000
Employees earning more than 70000:
Rahul → 80000
Neha → 90000
📌 SQL Solution
SELECT
employee_id,
employee_name,
department,
salary
FROM Employee
WHERE salary > (
SELECT AVG(salary)
FROM Employee
);
🔎 How does it work?
The subquery:
SELECT AVG(salary)
FROM Employee;
calculates the company-wide average:
70000
The outer query then checks:
WHERE salary > 70000
and returns only employees earning above that amount.
📌 Expected Result:
employee_name | department | salary
--------------|------------|-------
Rahul | IT | 80000
Neha | HR | 90000
Double Tap ❤️ For More
-----
1.33 ₽ · /balance_helpemployee_id | employee_name | department | salary
------------|---------------|------------|-------
1 | Amit | IT | 60000
2 | Rahul | IT | 80000
3 | Priya | HR | 70000
4 | Neha | HR | 90000
5 | Raj | Finance | 85000
6 | Karan | Finance | 95000
❓ Find the department that has the highest average salary.
💡 Approach
First, calculate the average salary for every department.
Then, find the department with the highest average.
Department averages:
IT → (60000 + 80000) / 2 = 70000
HR → (70000 + 90000) / 2 = 80000
Finance → (85000 + 95000) / 2 = 90000
Therefore:
Finance → 90000
📌 SQL Solution
SELECT
department,
AVG(salary) AS avg_salary
FROM Employee
GROUP BY department
ORDER BY avg_salary DESC
LIMIT 1;
Expected result:
department | avg_salary
-----------|-----------
Finance | 90000
🔎 How does it work?
1️⃣ "GROUP BY department"
Creates one group for each department.
2️⃣ "AVG(salary)"
Calculates the average salary within each department.
3️⃣ "ORDER BY avg_salary DESC"
Places the department with the highest average first.
4️⃣ "LIMIT 1"
Returns only the top department.
⚠️ Interview Trap
What if two departments have the same highest average salary?
For example:
IT → 80000
HR → 80000
Finance → 75000
"LIMIT 1" would return only one department.
If the interviewer asks:
👉 "Find all departments having the highest average salary"
then use a ranking approach:
SELECT department, avg_salary
FROM (
SELECT
department,
AVG(salary) AS avg_salary,
DENSE_RANK() OVER (
ORDER BY AVG(salary) DESC
) AS rnk
FROM Employee
GROUP BY department
) d
WHERE rnk = 1;
Now both IT and HR would be returned.
🎯 Double Tap ❤️ For More
-----
1.3 ₽ · /balance_helpsale_id | sale_date | amount
--------|------------|-------
1 | 2026-01-01 | 1000
2 | 2026-01-02 | 1500
3 | 2026-01-03 | 800
4 | 2026-01-04 | 1200
❓ Calculate the cumulative (running) sales amount for each day.
💡 Approach
A running total means:
Current day's sales + all previous sales
For example:
1000
1000 + 1500 = 2500
2500 + 800 = 3300
3300 + 1200 = 4500
The easiest approach is to use the "SUM()" window function.
📌 SQL Solution
SELECT
sale_date,
amount,
SUM(amount) OVER (
ORDER BY sale_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) AS running_total
FROM Sales
ORDER BY sale_date;
🔎 How does it work?
1️⃣ "ORDER BY sale_date"
Determines the order in which the running total is calculated.
2️⃣ "SUM(amount) OVER(...)"
Calculates the sum without collapsing the rows like a normal "GROUP BY".
3️⃣ "UNBOUNDED PRECEDING"
Means:
Start from the first row.
4️⃣ "CURRENT ROW"
Means:
Include the current row in the total.
So the calculation becomes:
Date Amount Running Total
---------- -------- -------------
Jan 01 1000 1000
Jan 02 1500 2500
Jan 03 800 3300
Jan 04 1200 4500
⚠️ Interview Trap
Don't use:
GROUP BY sale_date
for a running total.
"GROUP BY" collapses rows into groups.
A window function allows us to calculate an aggregate while keeping individual rows.
Also, if multiple rows can have the same "sale_date", be careful about the ordering. A unique column such as "sale_id" may need to be included:
SUM(amount) OVER (
ORDER BY sale_date, sale_id
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
)
🎯 Double Tap ❤️ For More
-----
1.31 ₽ · /balance_help