【发布时间】:2021-01-11 02:48:10
【问题描述】:
我正在使用 ibm cloud 和 sql 开发 db2。 我的数据包含 1 个包含 3 列的表:学校、它们的整体表现(水平)和位置。 我想使用带有 avg 和 min 的子查询来找到 AVERAGE 级别最低的位置。
我有这段代码可以完成这项工作:
select location, avg(level) as avglevel
from schools_table
group by location
order by avglvl
limit 1;
但我正在寻找类似的东西:
select location
from schools_table
where level = (select min(level) from schools_table);
这会产生所有值中的最小值。但是我对平均值的最小值感兴趣。
请帮忙 非常感谢您的任何见解。
阿图罗
【问题讨论】:
-
您不喜欢使用
order by和limit的代码的什么地方? -
我有点迷路了。您在问题中提到了两个表。文本中表的描述与查询中使用的列不匹配。样本数据和期望的结果真的很有帮助。
-
嗨!对不起,我把两张桌子混在一起了,你是对的。我已经修好了,我认为 fahmi 的答案正是我想要的。
-
@GMB,你说得对,我特别不喜欢极限线。我不想按顺序排列并限制为 1 行,而是想用 min() 函数得到答案。
-
如果两个位置的平均水平相同并且都等于最小值怎么办?如果您使用
limit,其中一个会丢失。
标签: sql db2 subquery average min