给定一个表columns(name, lat, lon, population, type)
每行有很多行name,我想选择按以下分组的行name where 人口是最高的。如果我仅限于姓名和人口,则以下内容有效
SELECT name, Max(population)
FROM table WHERE name IN ('a', 'b', 'c')
GROUP BY name;
但我想要其他专栏 -lat, lon, type
——结果也是如此。我怎样才能使用 SQLite 实现这一目标?
SQLite 允许您仅列出您想要的其他列 http://www.sqlite.org/lang_select.html#bareagg;它们保证来自具有最大值的行:
SELECT name, lat, lon, Max(population), type
FROM table
WHERE name IN ('a', 'b', 'c')
GROUP BY name;
文档内容如下:
当聚合函数为 min() 或 max() 时,会发生特殊处理。例子:
SELECT a, b, max(c) FROM tab1 GROUP BY a;
当在聚合查询中使用 min() 或 max() 聚合函数时,结果集中的所有裸列都会从也包含最小值或最大值的输入行获取值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)