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排序时,必须使用别名,不能使用表达式。

猜你喜欢

转载自www.cnblogs.com/wpbk007/p/12129954.html