hadoop - HIVE/HiveQL 获取最大计数

标签 hadoop hive hiveql apache-hive

示例数据

   DATE      WindDirection

   1/1/2000  SW
   1/2/2000  SW
   1/3/2000  SW
   1/4/2000  NW
   1/5/2000  NW

下面的问题

每一天都是唯一的,风向也不是唯一的,所以现在我们想得到最常见的风向的COUNT

select w.wind_direction as most_common_wd
from (
       select wind_direction, count(*) as cnt
       from weather 
       group by wind_direction 
       order by cnt desc
) w
limit 1;

目前这个查询有效,但是它输出所有计数的计数,我只对每种风向的计数感兴趣,它输出南并输出 170000 但答案只有 10,000。

我知道计数的使用方式有问题,我认为它必须指定一个别名并按特定的 wind_direction 进行计数,但我无法将其转换为语法

最佳答案

看起来您想要从您的数据中获取最常见的风向

select wind_direction, count(*) as cnt
from weather 
group by wind_direction 
order by cnt desc
limit 1;

如果有多个风向具有相同的最大计数,则获取最大计数并将其用于 having clause获取最常见的风向

select wind_direction 
from weather 
group by wind_direction 
having count(*) = ( select max(c) from 
                    (
                       select wind_direction,count(*) c 
                       from weather 
                       group by wind_direction 
                    ) a
                  ) 

关于hadoop - HIVE/HiveQL 获取最大计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36774800/

相关文章:

regex - hive 正则表达式不工作

hadoop - 为什么 hive 不允许在 JOIN 子句中使用 >、>=,但您可以使用 JOIN ON IF(a > b, 1, 0) = 1 来绕过它?

hive - hive sql 查询如何从 hive cli 作为 mr 作业提交

mysql - Hive 按播放次数查找前 n 个页面

hadoop - Hive 模拟不与自定义身份验证器提供程序一起使用

hadoop - 配置单元查询以查找不存在的IP地址和国家/地区

hadoop - Falcon Prism是否应与现有群集安装在不同的计算机上?

java - 我在哪里可以找到我在我的 ubuntu 文件系统中使用 hadoop fs -mkdir 创建的目录

python - 从我保存在本地文件系统上的配置单元查询输出中删除空行

hadoop - 如何为Eclipse构建hadoop 2.7.1插件