SQL max и группировка по - PullRequest
0 голосов
/ 06 мая 2018

У меня есть таблица с такими данными, как:

name   |  size
name1  |  3.16
name1  |  3.14
name2  |  2.85
name3  |  2.14
name3  |  2.02

И я выполняю свой запрос select name, max(size) from table GROUP BY name, size order by size desc limit 1000;

Я ожидаю, что запрос вернет: name1 3.16; name2 2.85; name3 2.14 но вместо этого я получил все записи в БД. Подскажите пожалуйста где я не прав?

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Вы должны удалить группу форм размера столбца cluase
использовать группу только по имени

select name, max(size) 
from table GROUP BY name

order by max(size) desc limit 1000;

имя каждого столбца в предложении group by используется для прерывания агрегации

0 голосов
/ 06 мая 2018

Вы должны ограничить сначала:

SELECT name, max(size) 
FROM (SELECT * FROM table ORDER BY size DESC LIMIT 1000) s
GROUP BY name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...