好吧,这听起来可能很蹩脚,但我要问的问题可能看起来有点幼稚。但与其他任何地方相比,我总是更愿意在这里倾诉心声。
所以我有一个名为 TEMP_CALC 的表,如下所示:
COUNTRY CITY TEMP
=============================
US Arizona 51.7
US California 56.7
US Bullhead City 51.1
India Jaisalmer 42.4
Libya Aziziya 57.8
Iran Lut Desert 70.7
India Banda 42.4
因此,该表包含区域中某些温度等级的样本数据(只是一些测试数据)。
我想要的是一个查询,它会显示最高温度的城市及其国家名称和温度等级本身。
我所做的查询要么给我国家名称和最高温度,要么给我表格中的所有行。 到目前为止我的尝试如下:
这只给我 COUNTRY 和 TEMP -
****************************
select country,max(temp)
from temp_calc
group by country
当我尝试将城市名称附加到这些温度时,它会为我提供表中的所有行 -
*************************
select country,city,max(temp)
from temp_calc
group by country,city
我想要最高温度的城市以及国家名称和温度等级本身。
最佳答案
如果我没理解错的话,你想要每个国家温度最高的城市。这通常是使用窗口函数完成的:
select country,city,temp
from (
select country,city,temp,
row_number() over (partition by country order by temp desc) as rn
from temp_calc
) t
where rn = 1
order by country, city;
关于sql - 如何在没有不需要的值的情况下将列包含在组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44624348/