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

Ссылка скопирована
1 ответ

Здравствуйте, есть БД с двумя таблицами из нее надо вытащить таблицу с указанием производителя с максимальной средней стоимостью телефонов

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

запрос к ней " 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

Дополнительно:

Вам нужно использовать следующий запрос:

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;

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

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Юрий Linux Ответ

Для начала давайте рассмотрим общий синтаксис запроса SQL с использованием функций MAX и AVG.

Функция MAX используется для нахождения максимального значения в столбце, а функция AVG - для вычисления среднего значения. Обе функции могут быть использованы в SELECT запросе для анализа данных в таблице.

Вот пример запроса, в котором используются функции MAX и AVG:

SELECT MAX(column_name) AS max_value, AVG(column_name) AS avg_value FROM TABLE_NAME;

SELECT MAX(column_name) AS max_value, AVG(column_name) AS avg_value FROM table_name;

Теперь давайте рассмотрим возможные ошибки, которые могут возникнуть в запросе SQL с использованием MAX и AVG.

1. Ошибка в названии столбца:
Если вы указали неверное имя столбца в функции MAX или AVG, то запрос вернет ошибку. Убедитесь, что вы правильно указали имя столбца в запросе.

2. Ошибка в синтаксисе запроса:
Если вы ошиблись в синтаксисе запроса, например забыли поставить точку с запятой в конце запроса, то база данных не сможет выполнить запрос.

3. Отсутствие необходимых прав доступа:
Если у вас нет необходимых прав доступа к таблице, в которой вы пытаетесь выполнить запрос, то база данных вернет ошибку доступа.

4. Некорректное использование функций:
Убедитесь, что вы используете функции MAX и AVG правильно. Например, функция AVG требует числового столбца для вычисления среднего значения, поэтому убедитесь, что вы передаете числовой столбец в функцию AVG.

Если вы продолжаете столкнуться с ошибками при использовании функций MAX и AVG в запросе SQL, попробуйте выполнить запрос по шагам, проверяя каждую часть запроса на правильность. Также обратитесь к документации вашей базы данных для получения дополнительной информации о правильном использовании этих функций.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно