You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HiveSQL如何获取按unemp降序排列的前3个不重复国家名称

解决方案

直接使用分组聚合取每个国家最高失业率后排序即可,正确查询语句如下:

SELECT country_name
FROM (
    SELECT country_name, MAX(unemp) AS max_unemp
    FROM tmpcalc
    GROUP BY country_name
    ORDER BY max_unemp DESC
) t
LIMIT 3;

逻辑说明

  1. 内层查询通过GROUP BY country_name对国家维度去重,同时用MAX(unemp)计算每个国家的最高失业率,确保每个国家仅对应一条记录,避免重复
  2. 内层直接按计算出的最高失业率降序排序,外层查询直接取前3条的国家名称,不会出现重复也不会打乱排序顺序

如果偏好使用窗口函数实现,也可以用以下写法,效果一致:

SELECT country_name
FROM (
    SELECT 
        country_name,
        unemp,
        ROW_NUMBER() OVER (PARTITION BY country_name ORDER BY unemp DESC) AS rn
    FROM tmpcalc
) t
WHERE rn = 1
ORDER BY unemp DESC
LIMIT 3;

内容的提问来源于stack exchange,提问作者user2891462

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:45:09