Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Obtener escalar y vector al mismo tiempo ?

Estas en el tema de Obtener escalar y vector al mismo tiempo ? en el foro de Mysql en Foros del Web. Buenas..... Me surgió una duda...... es posible obtener el MAX(), MIN(), AVG() ..etc de un campo y a la vez un conjunto de registros ? ...
  #1 (permalink)  
Antiguo 30/06/2014, 13:24
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Obtener escalar y vector al mismo tiempo ?

Buenas.....

Me surgió una duda...... es posible obtener el MAX(), MIN(), AVG() ..etc de un campo y a la vez un conjunto de registros ?

Algo asi......

Código SQL:
Ver original
  1. SELECT ProductName, AVG(Price) AS average FROM Products;


Me disculpo por llama "vector" a un conjunto de registros pero no se me ocurre otro nombre.

Gracias
__________________
Salu2!
  #2 (permalink)  
Antiguo 30/06/2014, 14:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Obtener escalar y vector al mismo tiempo ?

Partamos de una base simple: Si aplicas el AVG sobre una tabla de productos, donde cada uno es único en la tabla, obviamente te devolverá sencillamente el precio de ese producto.
Es decir:
Código MySQL:
Ver original
  1. SELECT ProductName, AVG(Price) average
  2. FROM Products
  3. GROUP BY ProductName;
Si cada ProductName es único, no habrá ningún promedio, sería igual a price/1.
Sólo tiene sentido usar una función de agregación si se agrupa en conjuntos de 1...N elementos, donde se pueda hacer una división del tipo X/N. De lo contrario devolverá los valores únicos.

Así como está planteada, sólo podría devolverte el promedio total de todos los precios, mas el precio de cada producto si usas WITH ROLLUP:
Código MySQL:
Ver original
  1. SELECT ProductName, AVG(Price) Price
  2. FROM Products
  3. GROUP BY ProductName WITH ROLLUP;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 30/06/2014, 14:29
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Obtener escalar y vector al mismo tiempo ?

@gnzsoloyo : nuevamente me has ayudado mucho a entender SQL, muchas gracias!

Hasta que no probe lo que me pasastes, no me imaginaba como devolvia los registros!


Millones de gracias y hasta la proxima
__________________
Salu2!

Etiquetas: campo, escalar, registro, select, tiempo, vector
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:00.