insert overwrite table tb_bil_red_list_all select * from (select *,ROW_NUMBER () over(PARTITION by obj_id order by exp_date desc,eff_date asc) n from tb_bil_red_list_total_all) a where n=1
时间: 2023-12-03 19:04:23 浏览: 62
这是一条SQL语句,它的作用是将tb_bil_red_list_total_all表中每个obj_id分组后,按照exp_date降序、eff_date升序排序,取出每组中n=1的记录,并将其插入到tb_bil_red_list_all表中,覆盖原有的数据。简单来说,就是从一个表中找出每个obj_id对应的最新记录,并将其存储到另一个表中。
相关问题
insert OVERWRITE table tb_bil_red_list_total_all select * from bss.tb_bil_red_list_550_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre} union all select * from bss.tb_bil_red_list_551_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre} union all select * from bss.tb_bil_red_list_552_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre} union all select * from bss.tb_bil_red_list_553_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre} union all select * from bss.tb_bil_red_list_554_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre} union all select * from bss.tb_bil_red_list_555_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre} union all select * from bss.tb_bil_red_list_556_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre} union all select * from bss.tb_bil_red_list_557_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre} union all select * from bss.tb_bil_red_list_558_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre} union all select * from bss.tb_bil_red_list_559_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre} union all select * from bss.tb_bil_red_list_560_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre} union all select * from bss.tb_bil_red_list_561_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre} union all select * from bss.tb_bil_red_list_562_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre} union all select * from bss.tb_bil_red_list_563_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre} union all select * from bss.tb_bil_red_list_564_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre} union all select * from bss.tb_bil_red_list_566_${month_no_pre} where REGEXP_replace (substr(exp_date,1 ,7),'-','')>${month_no_pre}
这是一条SQL语句,它的作用是将多个表中符合条件的数据合并到一个表中,并覆盖原有的数据。具体来说,它将 bss 数据库中表 tb_bil_red_list_550_${month_no_pre} 到 tb_bil_red_list_566_${month_no_pre} 中满足条件的数据合并到表 tb_bil_red_list_total_all 中,并覆盖原有的数据。其中,${month_no_pre} 是一个变量,代表某个月份的前缀。这条语句执行的前提是您有权限访问 bss 数据库和这些表,并且变量 ${month_no_pre} 已经被正确设置。
INSERT OVERWRITE TABLE udw_ns.default.lbsmap_dim_traffic_yanpan_dimension_time PARTITION(event_day = '20230601') select * from lbs_map_traffic_dimension_time;
根据你提供的SQL语句,这条语句是将`lbs_map_traffic_dimension_time`表的数据插入到`udw_ns.default.lbsmap_dim_traffic_yanpan_dimension_time`表的`event_day = '20230601'`分区中。但是,你遇到了一个类似于语法错误的问题,可能是由于Hive版本不兼容或者其他错误引起的。
你可以尝试检查以下几个方面:
1. 检查`lbs_map_traffic_dimension_time`表是否存在,以及该表中是否有数据。
2. 检查`udw_ns.default.lbsmap_dim_traffic_yanpan_dimension_time`表是否存在,并且该表的分区字段名是否为`event_day`。
3. 检查Hive版本是否兼容该语法。如果是较旧的Hive版本,可能不支持`INSERT OVERWRITE TABLE ... PARTITION ...`的语法。
4. 检查你的SQL语句中是否有语法错误,比如缺少关键字、拼写错误、语句格式错误等等。
如果你仍然无法解决问题,请提供更多的错误信息和SQL语句(包括表结构和分区信息),以便更好地分析问题的原因。
阅读全文