2009-12-06 32 views
24

Estoy tratando de obtener el promedio de los 5 artículos con el precio más bajo, agrupados por el nombre de usuario adjunto. Sin embargo, la consulta siguiente proporciona el precio promedio para cada usuario (que por supuesto es el precio), pero solo quiero que se devuelva una respuesta.Seleccione el promedio de la tabla de MySQL con el LÍMITE

SELECT AVG(price) 
    FROM table 
WHERE price > '0' && item_id = '$id' 
GROUP BY username 
ORDER BY price ASC 
    LIMIT 5 
+1

No entiendo lo que estás tratando de hacer. ¿Puedes dar una estructura de tabla de ejemplo, algunos datos de ejemplo y el resultado esperado para esa información? –

Respuesta

55

creo que esto es lo que está buscando:

SELECT AVG(items.price) 
    FROM (SELECT t.price 
      FROM TABLE t 
     WHERE t.price > '0' 
      AND t.item_id = '$id' 
     ORDER BY t.price 
     LIMIT 5) items 

Se devolverá el promedio de las 5 al mejor precio - una sola respuesta.

+3

+1 Gran respuesta. ¡Felicitaciones por llegar a 10k rep! –

+1

muy buena respuesta! –

+3

¡Felicidades por llegar a 160K + representante! –

0

Solución simple a continuación.

Consulta:

SELECT AVG(Column_name) 
FROM (SELECT Column_name 
FROM Table 
WHERE ColumnID < number[Limit you want]) 
Cuestiones relacionadas