Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

04 Haga lo que hicimos: aprendiendo sobre group by de SQL

SELECT p.categoria, c.pais, COUNT() AS total_productos FROM productos p JOIN categorias c ON p.id_categoria = c.id WHERE p.precio > 100 GROUP BY p.categoria, c.pais HAVING COUNT() > 5 ORDER BY total_productos DESC;

¡Buenísima consulta, Oscar!  Vamos a desmenuzarla paso a paso para que el GROUP BY (y todo lo demás) te quede clarísimo:

 ¿Qué hace tu consulta?
Estás buscando agrupaciones de productos por categoría y país donde:
- El precio sea mayor a 100, y
- La cantidad de productos en ese grupo sea mayor a 5.

 Desglose por partes
SELECT  
  p.categoria,  
  c.pais,  
  COUNT(*) AS total_productos


- Selecciona la categoría del producto, el país de la categoría, y cuenta cuántos productos hay en ese grupo.
FROM  
  productos p
JOIN  
  categorias c ON p.id_categoria = c.id


- Une las tablas productos y categorias para tener acceso a la columna pais.
WHERE  
  p.precio > 100


- Filtra los productos cuyo precio sea mayor a 100 antes de agrupar.
GROUP BY  
  p.categoria,  
  c.pais


- Aquí se agrupa por la combinación de categoría de producto y país. Cada grupo representa un conjunto único como “Electrónica–México” o “Hogar–España”.
HAVING  
  COUNT(*) > 5


- Aplica un filtro después de agrupar: solo se consideran los grupos que tienen más de 5 productos.
ORDER BY  
  total_productos DESC;


- Ordena los resultados del grupo que tiene más productos al que tiene menos.

 ¿Por qué GROUP BY importa aquí?
La cláusula GROUP BY es esencial porque:
- Estás contando productos, pero necesitas hacerlo por grupo.
- Agrupar por p.categoria y c.pais te permite obtener estadísticas por segmento.

Si quieres, te puedo ayudar a modificarla para incluir más métricas como precios promedio o categorías más vendidas. ¿Te gustaría hacerla más robusta o visualizarla en algún formato más claro?
1 respuesta

Hola, ¿cómo estás? Espero que te encuentres muy bien.

¡Felicitaciones por tu avance en el aprendizaje! Queremos recordarte que estamos priorizando el uso del foro para resolver dudas, ya que así podemos optimizar los tiempos de respuesta y asegurarnos de que todos puedan beneficiarse de las respuestas.

Además, para que no dejes de compartir tus códigos, actividades y ejercicios, en Discord. Allí puedes mostrar lo que estás haciendo, recibir sugerencias y colaborar con tus compañeros.

¡Te esperamos por allá!

Un saludo.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios