#sql
SELECT * FROM Customers WHERE rating = (SELECT MAX(rating) FROM Customers); Я думал, раз мы ищем из этой таблицы максимальное значение, то можно просто rating = MAX(rating)
Ответы
Ответ 1
Мы ищем не просто "максимальное значение", а все записи с максимальным рейтингом. Для этого нам нужно получить значение этого самого максимального рейтинга. И выбрать все записи, у которых рейтинг совпадает с максимальным. Что касается "просто rating=MAX(rating)" - а какую группировку используем для агрегации? Что нужно - записи с максимальным рейтингом среди всех клиентов или с максимальным рейтингом среди клиентов одного региона? И так далее, и тому подобное. Использование агригирующих функций в одном запросе с другими полями требует описания группировки. Поэтому такие вещи выносятся в подзапрос.
Комментариев нет:
Отправить комментарий