我正在尝试根据community_area_name计算safety_score的最大平均值。我可以通过查询来做到这一点:
SELECT max(average_safty) as maximum from (select community_area_name, AVG(safety_score) as average_safty from CHICAGO_PUBLIC_SCHOOLS group by community_area_name) ;
但是现在我想显示结果的community_area_name。我尝试过:
SELECT max(average_safty) as maximum, community_area_name from(select community_area_name, AVG(safety_score) as average_safty from CHICAGO_PUBLIC_SCHOOLS group by community_area_name) ;
但是然后我得到一个错误,因为它需要被分组。当我这样分组时:
%sql SELECT max(average_safty) as maximum, community_area_name from (select community_area_name, AVG(safety_score) as average_safty from CHICAGO_PUBLIC_SCHOOLS group by community_area_name) group by community_area_name ;
结果是每个community_area_name的所有平均值的列表,而不仅仅是最大平均值。
我如何获得如下所示的结果?:
| community_area_name |最高 |
地区名称|平均最高|
答案 0 :(得分:1)
使用order by
和fetch
子句:
select community_area_name, avg(safety_score) as average_safety
from CHICAGO_PUBLIC_SCHOOLS
group by community_area_name
order by average_safety desc
fetch first 1 row only;