Hola, estudiantes.
Queríamos detallar un poco sobre la función COUNT mencionada en la clase.
Para aplicarla en el primer ejemplo que la profesora relacionó, utilizamos el siguiente comando: SELECTcourseid, COUNT(studentid)
En este caso, SELECT se utiliza para identificar el ID del curso donde se va a realizar el conteo de los estudiantes. Es decir: SELECTcourseid
Después de ello, utilizamos la función COUNT, la cual realizará la búsqueda de cuántos estudiantes se encuentran en cada uno de los cursos: COUNT(studentid)
Adicionalmente, hemos dejado el query para la creación de la tabla STUDENT_COURSE y el INSERT que se realiza sobre la misma.
----
¿Cómo generar informes eficaces con SQL en entornos de Business Intelligence?
El Business Intelligence es esencial para la toma de decisiones empresariales, pues proporciona herramientas y tecnologías que ayudan a transformar datos en información valiosa. SQL, una de las principales herramientas de manipulación de datos, permite la creación de informes detallados. Este contenido te guiará a través de un escenario práctico donde aprendemos a construir informes utilizando consultas SQL. Abordaremos desde la agrupación de estudiantes por curso hasta el cálculo de saldos promedios de instructores.
¿Cómo contar estudiantes por curso?
Imagina que tu jefe necesita saber cuántos estudiantes están inscritos en cada curso. La solución es usar SQL para agrupar la información. Empezaremos usando la sentencia GROUP BY, que nos permite clasificar datos según columnas específicas.
SELECT curso_id,COUNT(estudiante_id)AS total_estudiantes
FROM inscripciones
GROUPBY curso_id;
Este ejemplo agrupa estudiantes por curso, contando cuántos hay en cada uno. Es clave especificar el campo de estudiante dentro del COUNT para obtener resultados precisos.
¿Cómo filtrar estudiantes con más de dos cursos?
Supongamos que ahora solo quieres mostrar estudiantes con más de dos cursos registrados. Aquí entra HAVING, que actúa como un filtro posterior al GROUP BY.
SELECT estudiante_id,COUNT(curso_id)AS total_cursos
FROM inscripciones
GROUPBY estudiante_id
HAVINGCOUNT(curso_id)>2;
Esta consulta proporciona resultados donde solo los estudiantes con más de dos cursos registrados son mostrados, demostrando la flexibilidad de HAVING en SQL para crear filtros avanzados.
¿Cómo calcular salarios de instructores con operaciones aritméticas?
En la gestión administrativa, conocer el salario total de los empleados puede ser crucial. SQL ofrece la función de SUM para sumar valores de una columna, y los alias para mejorar la legibilidad del resultado.
SELECTSUM(salario)AS salario_total
FROM instructores;
Este comando suma todos los salarios de la tabla de instructores. Al usar un alias, nominalizamos la columna resultante para facilitar su interpretación en los informes.
¿Cómo calcular el promedio de salarios?
Para conocer el promedio salarial de los instructores, utilizamos AVG, que calcula el promedio de una columna de números.
SELECTAVG(salario)AS salario_promedio
FROM instructores;
Al igual que con otras funciones aritméticas, los alias ayudan a mantener un estándar uniforme y profesional en la presentación de datos al personal directivo.
Buenas prácticas y recomendaciones
Mantener consistencia y limpieza en el nombre de las columnas es fundamental. Evita mezclar idiomas o usar mayúsculas y minúsculas indiscriminadamente al nombrar columnas o utilizar aliases. Estas prácticas garantizan que nuestras consultas sean no solo correctas, sino también profesionalmente presentadas.
Practicar y experimentar con diferentes combinaciones es esencial para desarrollar habilidades avanzadas en SQL y BI. Imagina que tu jefe te pide diferentes informes y utiliza estos métodos para resolver problemas reales en un entorno de datos dinámico.
Si tienes alguna duda o deseas explorar otros escenarios, ¡anímate a plantear tus preguntas y comparte tus experiencias!
Me gustaria que en los recursos pongan las mismas tablas que ella trabaja en el ejemplo.
Que buen resumen gracias 🙂↔️
Excelente resumen
El analisis no me parece correcto ya que el query:
select courseid, count(studentid)
from student_course
group by courseid
nos da el conteo de alumnos matriculados en cierto curso con id (courseid). En cambio lo que la profesora dice y cito "el estudiante con id número 3 tiene 4 cursos inscritos" LO CUAL ES ERRÓNEO, DADO QUE ESTÁ AGRUPANDO POR COURSEID DE LA TABLA DE MATRICULAS.
En palabras de GPT:
"El query obtiene el número de estudiantes inscritos en cada curso, agrupando los resultados por el identificador único del curso (courseid)."
La profesora dijo "el curso con el ID 4 hay 3 estudiantes inscritos" lo cual es correcto, estás confundiendo o escuchaste mal por que está al revés lo que comentas.
lo dice en el minuto 4:16, lo rectifica ahí
No me imagino el nivel de PRISA con el que se publicó este curso. Entiendo que se puedan cometer errores al momento de la grabación, pero la edición es terrible, creo que nadie auditó esto antes de publicarlo.
Para el uso de COUNT, GROUP BY, HAVING, SUM y AVG en SQL, aquí tienes un ejemplo práctico:
Supongamos que tienes una tabla llamada ventas con las columnas producto_id, cantidad, y precio.
COUNT: Para contar cuántas ventas se realizaron por producto:
SELECT producto_id,COUNT(*)AS total_ventas
FROM ventas
GROUPBY producto_id;
SUM: Para obtener el total vendido de cada producto:
SELECT producto_id,SUM(cantidad)AS total_cantidad
FROM ventas
GROUPBY producto_id;
AVG: Para calcular el promedio de ventas por producto:
SELECT producto_id,AVG(precio)AS precio_promedio
FROM ventas
GROUPBY producto_id;
HAVING: Para filtrar productos que tienen un total de ventas mayor a 10:
SELECT producto_id,COUNT(*)AS total_ventas
FROM ventas
GROUPBY producto_id
HAVINGCOUNT(*)>10;
Utiliza GROUP BY para agrupar datos, COUNT para contar registros, SUM para sumar valores, AVG para calcular promedios y HAVING para filtrar resultados agrupados.
Para aquellos que no ven muy clara la diferencia entre el GROUP BY y el HAVING. Mas alla de que el HAVING sirve para agrupar luego que se aplique el GROUP BY, este se aplica para aquellos campo a los cuales se les esta aplicando una funcion de agregacion. Ejemplo:
SELECT
item,
SUM (amount) AS Total_amount
FROM
Orders
GROUP BY
item
HAVING
amount > 800
el having es como el where, la diferencia es q el having solo se usa despues de group by
CON QUÉ TABLAS TRABAJA ?, ERA MUCHO TRABAJO MOSTRARLAS ? .TANTA EDICIÓN PARA NADA... HASTA UN VIDEO DE YOUTUBE ESTÁ MEJOR EXPLICADO. ALGUIEN ASESORO ESTE CURSO ??
En videos atrás mencionó que estaba manejando las mismas tablas con las que estábamos viendo el CRUD como el students, instructors, courses... y los registros le pidieramos a ChatGPT para que hicieramos los registros aleatorios :D
pienso que debería de hacer una tabla nueva hacer con nosotros no que el video ya este echa para afianzar mejor los conceptos. me toco salir a youtube para poder hacer esto mismo.
El curso está mal estructurado y contiene errores conceptuales que demuestran una falta de dominio sobre SQL. En una clase se presentó este query:
SELECT courseid, COUNT(studentid) FROM student_course GROUP BY courseid;
Y se dijo que con él se podía saber cuántos cursos tenía inscrito el estudiante con ID 3. Eso es falso. Ese query cuenta cuántos estudiantes hay por curso, no cuántos cursos tiene un estudiante. El error es básico y demuestra una enseñanza superficial, que además se repitió sin corrección.
Este tipo de equivocaciones generan más confusión que aprendizaje. Lo mínimo que se espera de un curso es precisión y claridad, no que enseñen mal conceptos fundamentales. Este curso me atrasó más de lo que me ayudó.
La cláusula HAVING en SQL se utiliza para filtrar resultados después de realizar una agregación, como con GROUP BY. A diferencia de WHERE, que filtra filas antes de la agregación, HAVING se aplica a los resultados agregados. Por ejemplo, puedes usar HAVING para mostrar solo los grupos que cumplen una condición específica, como contar estudiantes con más de dos cursos inscritos. Esto es esencial para generar informes precisos en análisis de datos.
Hotkeys de MySQL ⭐🐬
Ctrl + Enter: Execute the selected query or the entire script if nothing is selected.
Ctrl + Shift + Enter: Execute the entire script, regardless of selection.
Ctrl + Z: Undo the last action.
Ctrl + Y: Redo the last undone action.
Ctrl + S: Save the current file or script.
Ctrl + O: Open a file or script.
Navigation
Ctrl + Tab: Switch between open tabs.
Ctrl + W: Close the current tab.
Ctrl + Shift + T: Reopen the last closed tab.
Editing
Ctrl + D: Duplicate the selected line or block of code.
Ctrl + /: Comment or uncomment the selected lines.
Ctrl + Shift + U: Convert selected text to uppercase.
Ctrl + U: Convert selected text to lowercase.
Formatting
Ctrl + B: Beautify or format the SQL code.
Ctrl + Shift + K: Clear the query editor.
Usa COUNT(*) cuando quieras contar todas las inscripciones en la tabla.
Usa COUNT(student_id) si necesitas asegurar que haya un estudiante válido en cada fila.
En tu caso, si sabes que student_idno será NULL nunca (por ser clave foranea), ambas consultas darán el mismo resultado.
Para obtener la suma de la columna "salario" de la tabla "empleados", utiliza la siguiente instrucción SQL:
SELECTSUM(salario)AS total_salario FROM empleados;
Esta consulta sumará todos los salarios en la columna "salario" de la tabla "empleados" y mostrará el resultado bajo el alias "total_salario".
El video se centra en la manipulación avanzada de datos en SQL, mostrando cómo generar informes útiles para la toma de decisiones en un entorno empresarial. Se introducen las funciones de conteo, agrupamiento y filtrado.
Conceptos principales:
GROUP BY: Agrupa datos por una o varias columnas (ejemplo: contar estudiantes por curso).
HAVING: Filtra resultados después de aplicar GROUP BY (ejemplo: estudiantes con más de dos cursos).
Funciones de Agregación: Uso de funciones como COUNT, SUM y AVG para obtener resúmenes estadísticos (ejemplo: promedio de salarios).
Herramientas y pasos clave:
Utilización de SQL para consultas estructuradas.
Práctica en consola para ejecutar y verificar resultados.
Ejemplo práctico:
Consulta para contar estudiantes en un curso:
Mnemotécnica: "GHEC" (Group, Having, Aggregation, Console) para recordar los pasos clave en la manipulación de datos.
En el video la profesora no esta explicando bien la sentencia , dice que el estudiante 3 esta inscrito en cuatro cursos. En esa sentencia lo que se muestra es que hay 3 alumnos matriculados en en el curso con courseid = 4
tambien podriamos hacer la combinacion de AVG con la operacion ROUND para redondear y no tener un promedio tan largo dependiendo de lo que queremos lograr de todas formas las consultas son para solicitar informacion de conjuntos de datos y saber que queremos hacer con eso
MySQL ofrece varias funciones aritméticas que puedes utilizar en tus consultas:
SUM(): Suma todos los valores de una columna.
AVG(): Calcula el promedio de los valores de una columna.
COUNT(): Cuenta el número de filas que coinciden con un criterio.
MIN(): Devuelve el valor mínimo de una columna.
MAX(): Devuelve el valor máximo de una columna.
Estas funciones permiten realizar cálculos sobre los datos, facilitando el análisis y la obtención de estadísticas.
To use the SUM function in MySQL, you can write a query like this:
SELECTSUM(salary)AS total_salary FROM instructors;
This query calculates the total salary of all instructors. If your instructors table has the following data:
id
salary
1
50000
2
60000
3
70000
The output in the console would be:
total_salary
180000
This demonstrates how to aggregate data using the SUM function in SQL.
To use GROUP BY in MySQL, you can create a query that summarizes data based on a specific column. For example, if you have a table named students that contains student enrollments, you can count how many students are enrolled in each course like this:
SELECT course_id,COUNT(student_id)AS student_count
FROM students
GROUPBY course_id;
This query groups the results by course_id and counts the number of students for each course. It’s a powerful way to analyze data efficiently.
To use the HAVING clause in MySQL, you can follow this example:
SELECT course_id,COUNT(student_id)AS student_count
FROM enrollments
GROUPBY course_id
HAVING student_count >2;
In this query, we select the course_id and count the number of student_id for each course. The HAVING clause filters the results to show only those courses with more than 2 students enrolled. This is useful for aggregating data based on conditions, as discussed in the course transcript.
Para evitar las altas expectativas sobre el curso, quizás se pudiera tener una introducción diciendo que esto es una guía para presentar de forma básica como se trabaja con SQL, queda de parte de los estudiantes investigar porque aquí solo se dice que existen las cosas con ejemplos básicos sin mayor explicación.
Dejo una ayuda: las condiciones que colocas dentro del HAVING deben estar relacionadas con funciones de agregación presentes en el SELECT. Es decir, si en el select hay COUNT(STUDENTID), en el having se debe colocar lo mismo; si en el select hay avg(precio), en el having también debe haber avg(precio).