Подтвердить что ты не робот

Выберите среднее значение из таблицы MySQL с помощью LIMIT

Я пытаюсь получить среднее значение из самых низких 5 предметов, сгруппированных по имени пользователя, прикрепленному к ним. Однако нижеприведенный запрос дает среднюю цену для каждого пользователя (это, конечно, цена), но я просто хочу, чтобы один ответ был возвращен.

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

Ответ 1

Я думаю, что это то, что вам нужно:

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

Он вернет среднее из 5 самых низких цен - единственный ответ.

Ответ 2

Простое решение ниже.

Query:

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