MySQL 临时表
MySQL 临时表在我们需要保存一些临时数据时是非常有用的。
临时表只在当前连接可见,当关闭连接时,MySQL 会自动删除表并释放所有空间。
在 MySQL 中,临时表是一种在当前会话中存在的表,它在会话结束时会自动被销毁。
withvehicle_type_vehicle_usage_run_status_drop_anchor_ppm_table as (select vehicle_type, -- power_type, -- vehicle_usage, -- run_status, -- sale_month, -- drop_anchor_cnt, -- hold_cnt, -- drop_anchor_ppm, -- drop_anchor_target, -- drop_anchor_reward -- from ic_qms_ads.qms_ads_bi_dappm_vtvurs_sr -- where 1 = 1 and power_type <> ''and vehicle_usage <> ''and run_status <> ''),--- 合并表
union_table as (select * from vehicle_type_drop_anchor_ppm_table -- union select * from vehicle_type_run_status_drop_anchor_ppm_table -- union select * from vehicle_type_vehicle_usage_drop_anchor_ppm_table -- union select * from vehicle_type_vehicle_usage_run_status_drop_anchor_ppm_table --
)
临时表对于需要在某个会话中存储中间结果集或进行复杂查询时非常有用。MySQL 临时表 | 菜鸟教程
临时表的作用范围仅限于创建它的会话。其他会话无法直接访问或引用该临时表。在多个会话之间共享数据时,可以考虑使用普通表而不是临时表。
请注意,临时表在会话结束时会被自动删除,但也可以使用 DROP TEMPORARY TABLE 明确删除它,这样可以更早地释放资源。
在写hivesql语句时,通常因为实现一个比较复杂的逻辑时,往往使用多层嵌套关联,首先导致代码的可读性较差,其次是代码性能比较低。因为这个原因,很多人都会想方设法去优化代码,提高代码的可读性和性能。在优化中,我们尝尝想到的是去创建临时表的方法。目前创建临时表方法有两种,一种是create temporary会话级临时表创建;另外一种是with as的方式,这种方式更偏向像是视图(子查询)。
————————————————
hive之with as 和 create temporary区别_hive with as-CSDN博客