我的表格包含以下数据:
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中获得了所有记录。请告诉我,我错在哪里?
答案 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子句中的每个列名用于聚合中断