先说说Hive分组查询的基本用法。Hive这个基于 Hadoop 的数据仓库工具,核心能力就是把结构化数据文件映射成数据库表,然后直接用 SQL 查——对大数据从业者来说,这活儿实在太熟了。

一个最基础的例子:按某个字段统计分组内的行数。看这段代码:
SELECT column_name, COUNT(*) as countFROM table_nameGROUP BY column_name;
这里 column_name 就是你要分组的字段,table_name 是表名,COUNT(*) 负责统计每个分组里有多少行。很简单吧?
那如果一次要按多个字段分组呢?用逗号把字段名列出来就行。看这个:
SELECT column1, column2, COUNT(*) as countFROM table_nameGROUP BY column1, column2;
这个例子就是同时按 column1 和 column2 分组,每个组合对应的行数一目了然。
这里有个关键点需要特别注意:GROUP BY 子句中间出现的字段,SELECT 子句里除了聚合函数(比如 COUNT、SUM、A VG 等)之外的列,必须都在 GROUP BY 里出现。如果不满足这个条件,Hive 会直接报错。这一点和传统关系型数据库的 SQL 规则是一致的——分组时非聚合列必须“露面”。
