@Roman_v_k

В чем ошибка в запросе SQL (MAX и AVG)?

Здравствуйте, есть БД с двумя таблицами из нее надо вытащить таблицу с указанием производителя с максимальной средней стоимостью телефонов 6155e0865fe7c054293838.png
запрос к ней " SELECT companyName, MAX(PriceAvg) FROM (SELECT `companyId`, AVG(`price`) AS PriceAvg FROM phone GROUP BY `companyId`) AS reporttable INNER JOIN company ON reporttable.companyId=company.companyId " дает неправильный ррезультат, а именно неправильно указывает производителя телефонов, при этом без INNER JOIN работает правильно, указывая Id производителя и максимальную среднюю цену телефонов. Но нужно вывести название производителя в таблице, а не его Id. Файл базы https://disk.yandex.ru/d/lQnRbz4WqZKDHQ
  • Вопрос задан
  • 198 просмотров
Решения вопроса 1
rozhnev
@rozhnev Куратор тега SQL
Fullstack programmer, DBA, медленно, дорого
Вам нужно использовать следующий запрос:
SELECT 
  companyName, 
  PriceAvg 
FROM 
  (
    SELECT 
      `companyId`, 
      AVG(`price`) AS PriceAvg 
    FROM 
      phone 
    GROUP BY 
      `companyId`
  ) AS reporttable 
  INNER JOIN company ON reporttable.companyId = company.companyId
  ORDER BY PriceAvg DESC LIMIT 1;


Проверить SQL online
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы