HAVING es una clausula también bastante usada para especificar condiciones, se usa despues de agrupar los datos
SELECT name,SUM(sales)FROM tabla_diaria
GROUPBY name
HAVINGSUM(sales)>100
El having es muy muy eficiente a la hora de tomar encuenta columnas con Alias.
Buen aporte 📝
Agregación y limitantes GROUP BYyLIMIT(SELECT TOP porque no existe LIMIT en SQL)
GROUP BY es una sentencia que agrupa filas que tienen el mismo valor en columnas con el sumatorio. Como decirle 'encuentra el número de clientes en cada país'.
Suele usarse frecuentemente con las funciones COUNTMAXMINMAXSUMAVG a un grupo de una o más columnas.
SELECT*FROM tabla_diaria
GROUPBY marca;SELECT*FROM tabla_diaria;GROUPBY marca, modelo;SELECTCOUNT(CustomerID), Country
FROM Customers
GROUPBY Country
ORDERBYCOUNT(CustomerID)DESC;
SELECT TOP es usada para especificar el número de registros que se van a retornar.
SELECT TOP es útil para tablas con miles de registros, pues un gran número de registros puede afectar el rendimiento.
SELECTTOP number
FROM table1
WHERE condition;SELECTTOP1500FROM tabla_diaria;
Gracias por compartir compañero!
Gracias buen aporte!!
Mis notas personales sobre GROUP BY y LIMIT
Buenos apuntes. Aunque la explicación de OFFSET se podría mejorar:
SELECT*FROM tabla_diaria OFFSET1500LIMIT1500;
En el ejemplo anterior cuando pasen los 1500 registros (Especificado POR OFFSET), obtendremos los 1500 registros siguientes (Especificado por LIMIT).
Muchas gracias por compartir
Aqui les muestro un resumen de todo lo visto hasta el momento
Muy interesante su aporte!
que buen aporte, gracias
Si alguien está haciendo el curso con mysql, OFFSET se puede escribir de dos formas:
LIMIT10,15// 10 sería el offsetLIMIT15OFFSET10// OFFSET debe ir después de LIMIT
Acá la doc de SELECT donde encontré esta parte.
++Agregación (GROUP BY y LIMIT)++
GROUP BY especifica por qué campos se agrupan las agregaciones
LIMIT especifica la cantidad de registros, en SQL Server se llama TOP y va después de SELECT
OFFSET especifica a partir de qué registro se trae la consulta, luego puede venir LIMIT para cerrar el rango. En SQL Server es FETCH NEXT
sigo pensando que eres de los mejores profesores de platzi
Pienso lo mismo!
definitivamente si
Estoy utilizando el motor MySQL y el Offset va después del Limit
Pueden haber diferencias de funcionamiento entre varias DBs
Sin duda que SQL es un camino mucho más complejo de lo imaginado. Ideal para todos los que nos gusta jugar y cruzar datos.
Yo estoy aprendiendo PHP para empezar a trabajar y no me imaginaba que entre el montón de ladrillos que necesito mover para hacerlo(que son los cursos) iba a tener que mover los cimientos de una. Qué complicado que se me está haciendo. Ja, ja, ja, ja.
Comparto mi query que hize con ayuda de GROUP BY y AVG, lo que hace es sacarme el promedio de colegiatura que hay por cada carrera
Notas 😄
Agregación y limitantes (GROUP BY y LIMIT).
La agregación es la reducción los datos en grupos. Nos sirve mucho para sacar estadísticas y gráficas. Podemos especificar los parámetros por los que queremos agrupar.
Ejemplos:
SELECT* tabla
GROUPBY marca;# Se puede usar varios parámetros de agrupaciónSELECT*FROM tabla
GROUPBY marca, modelo;
Esto nos podría servir para, por ejemplo, sacar el promedio del costo de cada una de las marcas (en lugar del promedio general de todas generales). Por eso, este parámetro va muy de la mano del SELECT y funciones como AVG.
Las limitantes (LIMIT), son sentencias simples para ahorrar recursos y mejorar el rendimiento. Es para limitar el query usando una condición numérica (por ejemplo, solo traer 5 registros). Ejemplos:
# Primeros 1500 registrosSELECT*FROM tabla LIMIT1500;# Registro 1500 a 3000SELECT*FROM tabla
OFFSET1500LIMIT1500;
Comparto los apuntes que llevo hasta el momento, espero sea de mucha utilidad ;)
➡️ Con esta consulta pude sacar:
Cuántos alumnos tiene cada carrera.
Ordenar por las carreras que tienen mas alumnos y sacar el top 5.
Thanks!
De esas dos tablas que tenemos podemos sacar muchísimos reportes. He aquí el mío:
Hola, que pena molestarte pero estoy perdido no entiendo como estas llamando las tablas y las columnas, es decir no entiendo PC y PA
@dresivan5, claro, te explico.
Normalmente a las tablas se le da un alias para reconocerlas más rápido. Entonces, para no confundir los campos que le corresponden, se las llama a través de él(que vendría a ser la tabla en sí) y sus elementos.
En este caso pa es el alias de la tabla platzi.alumnos y pc el de platzi.carreras.
Como quiero quiero invocar el nombre de la carrera y se encuentra en la tabla platzi.carreras lo llamo con su alias; así: Select pc.carrera. Del mismo modo para colegiatura, que pertenece a la tabla platzi.alumnos; así: pa.colegiatura.
Espero haberte ayudado. :D
Me costó trabajo el OFFSET pero ya esta está dominado.
Me gusta como la entandarización que mencionaba antes se refleja en diferentes librerias. Por ejemplo en pandas de python podemos usar el group by para hacer "tablas dinámicas" y el head(n) para seleccionar una cantidad de datos. Esta ruta es integral definitivamente.
Para que hacer un query de cuales son las computadoras mas costosas si ya sabemos que siempre seran las de apple
!gif de "te lo dije"