Выберите среднее значение из таблицы MySQL с помощью LIMIT - PullRequest
24 голосов
/ 06 декабря 2009

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

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

Ответы [ 2 ]

56 голосов
/ 06 декабря 2009

Я думаю, это то, что вы ищете:

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 самых низких цен - один ответ.

1 голос
/ 20 декабря 2017

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

Запрос:

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