博客
关于我
Hadoop HIVE 聚合查询
阅读量:797 次
发布时间:2023-04-03

本文共 825 字,大约阅读时间需要 2 分钟。

非聚合,逐行计算

在日志数据处理中,我们常常需要对每一行数据进行单独的计算。以下是一个典型的例子:

select ip, upper(url), access_timefrom log

这个查询会从log表中逐行提取ipupper(url)access_time三个字段的数据。


聚合,分组计算

当需要对多行数据进行聚合操作时,group by命令会派上用场。以下是一个分组计算的示例:

select url, count(1) as cntsfrom loggroup by urlhaving cnts > 2
  • group by url:按照url字段进行分组。
  • count(1):用于计数每一行数据,这里每一行都会算作1次计数。
  • having cnts > 2:对分组后的数据进行过滤,只保留cnts大于2的记录。

where关键字用于对整体数据进行过滤,而having则是对分组后的数据进行过滤。


非聚合函数与聚合函数

非聚合函数是对单行数据进行操作,而聚合函数是对多行数据进行汇总或统计。以下是一个结合子查询和聚合函数的复杂示例:

select dt, url, cnts, max_ipfrom (    select dt, url, count(1) as cnts, max(ip) as max_ip    from log    where dt > '2017-08-04'    group by dt, url) as tmpwhere cnts > 2
  • group by dt, url:先按日期dturl分组。
  • count(1):计算每个分组内的记录数。
  • max(ip):在分组内找出ip字段的最大值。
  • 子查询as tmp:将结果命名为tmp,方便后续操作。
  • where cnts > 2:对最终结果进行过滤,仅保留cnts大于2的记录。

这种方法可以帮助我们同时获取多个聚合结果,并对最终数据进行进一步的过滤。

转载地址:http://orefk.baihongyu.com/

你可能感兴趣的文章
OSI七层模型的TCP/IP模型都有哪几层和他们的对应关系?
查看>>
OSI操作系统(NETBASE第八课)
查看>>
OSM数据如何下载使用(地图数据篇.11)
查看>>
OSPF 四种设备角色:IR、ABR、BR、ASBR
查看>>
OSPF 四种路由类型:Intra Area、Inter Area、第一、二类外部路由
查看>>
OSPF 学习
查看>>
OSPF 支持的网络类型:广播、NBMA、P2MP和P2P类型
查看>>
OSPF 概念型问题
查看>>
OSPF 的主要目的是什么?
查看>>
OSPF5种报文:Hello报文、DD报文、LSR报文、LSU报文和LSAck报文
查看>>
SQL Server 存储过程分页。
查看>>
OSPFv3:第三版OSPF除了支持IPv6,还有这些强大的特性!
查看>>
OSPF不能发现其他区域路由时,该怎么办?
查看>>
OSPF两个版本:OSPFv3与OSPFv2到底有啥区别?
查看>>
SQL Server 存储过程
查看>>
OSPF在什么情况下会进行Router ID的重新选取?
查看>>
OSPF在大型网络中的应用:高效路由与可扩展性
查看>>
OSPF太难了,这份OSPF综合实验请每位网络工程师查收,周末弯道超车!
查看>>
OSPF技术入门(第三十四课)
查看>>
OSPF技术连载10:OSPF 缺省路由
查看>>