SQL max和group by

时间:2018-05-06 15:57:48

标签: sql postgresql

我的表格包含以下数据:

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但我在DB中获得了所有记录。请告诉我,我错在哪里?

2 个答案:

答案 0 :(得分:1)

您需要先限制:

SELECT name, max(size) 
FROM (SELECT * FROM table ORDER BY size DESC LIMIT 1000) s
GROUP BY name;

答案 1 :(得分:1)

您必须通过cluase清除列大小表单组 仅按名称使用分组

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

order by max(size) desc limit 1000;

group by子句中的每个列名用于聚合中断