顾名思义就是按照指定的一个或者多个字段就行分组查询,返回每个组的相关值,group by时常与聚合函数结合使用,
这里需要注意的是,
1、在hive中, 一旦有group by子句,那么,在select子句中只能有分组字段,聚合函数以及值的水平是唯一的字段(常量)。否则会提示Expression not in GROUP BY key '不应该在select中的字段名'。想想,如果一个字段的值的水平不止一个,然后又不对他就行聚合函数运算,那么是没有办法分组显示的。
2、多分组查询的时候,假设用2个字段分组,一个字段的值有3个水平,另一个字段的值有4个水平,那总共会有3*4=12个分组。
例如:有如下数据
求每条URL的访问总次数
select url,count(1) as cnts -- 该表达式是对分好组的数据进行逐组运算
from t_pv_log
group by url;
---------------------------------------------------------
上图的数据中求每个用户访问同一个页面的所有记录中