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