hive、mysql别名的使用问题
sql的书写顺序
1 SELECT DISTINCT <select_list> 2 FROM <left_table> 3 <join_type> JOIN <right_table> 4 ON <join_condition> 5 WHERE <where_condition> 6 GROUP BY <group_by_list> --mysql从此开始可以使用select中的别名 7 HAVING <having_condition> --hive从此开始可以使用select中的别名 8 ORDER BY <order_by_condition> 9 LIMIT <limit_number>
sql的底层执行顺序
1 (7) SELECT 2 (8) DISTINCT <select_list> 3 (1) FROM <left_table> 4 (3) <join_type> JOIN <right_table> 5 (2) ON <join_condition> 6 (4) WHERE <where_condition> 7 (5) GROUP BY <group_by_list> 8 (6) HAVING <having_condition> 9 (9) ORDER BY <order_by_condition> 10 (10) LIMIT <limit_number>
一、Mysql中别名的使用位置
select子句中的别名的使用,在group by及后面可使用。
from子句中的表别名的使用,在where及后面可使用。
二、hive sql中别名的使用位置
在having及后面可以使用。
在order by排序时,必须使用别名,不能使用表达式。