前面学习了Hive中的数据定义语言,也学习了如何加载或者插入数据,在一些示例中或多或少的使用了SELECT语句,但还没有全面系统地学习,现在就开始学习Hive的SELECT语句。Hive的SELECT语句与传统的SQL中的SELECT还是有些区别的。具体的语法如下:
[WITH CommonTableExpression(, CommonTableExpression)*]
SELECT [ALL | DISTINCT]select_expr, select_expr, ...
FROM table_reference
[WHERE where_condition]
[GROUP BYcol_list]
[HAVING where_condition]
[ORDER BYcol_list]
[CLUSTER BYcol_list
| [DISTRIBUTE BY col_list] [SORT BY col_list]
]
[LIMIT number]
SELECT语句可以作为union查询的一个部分或者另一个查询的子查询,table_reference既可以是表、视图,也可以是联合查询或者子查询。ALL和DISTINCT指定是否返回重复行,在不指定任何关键字的情况下,默认值为ALL,DISTINCT指定删除结果集中的重复记录。HAVING必须出现在GROUP BY之后。下面具体看看SELECT语句的各个部分。