GROUP BY 不能使用别名(Alias),只能用已有字段名或者字段函数,函数嵌套较多时引用不是很方便。
在部分 DBMS 中可以使用字段序号快速引用 SELECT 语句后的字段,像这样:
SELECT count(1),
substr(date, 1, 4) as year,
city
FROM ...
GROUP BY 2, 3
我没试过能不能混用,比如 GROUP BY 2, city,有时间可以试试。
Reference: https://stackoverflow.com/questions/29443253/hive-more-clean-way-to-select-as-and-group-by