UNION用于联合多个select语句的结果集,合并为一个独立的结果集,结果集去重. UNION ALL也是用于联合多个select语句的结果集.但是不能消除重复行.现在hive只支持UNION ALL. 这里需要特别注意,每个select语句返回的列的数量和名字必须一样,同时字段类型必须完全匹配,否则会抛出语法错误. 这种时候可以使用别名处理.例如 使用别名之后就不会报错了.
写hive 用in 如分时段,分类型,分平台统计点击量 select substr(createtime,12,2) hour,logtype,os_id,count(*) from wizad_mdm_raw_hdfs raw where ad_id in ('19829','19830','19831','26657d5ff9020d2abefe558796b99584') and adn=5 group by substr(createtime,12,2),logtype,os_id
测试环境 Hive 1.2.1000.2.6.0.3-8 set hive.support.concurrency=true; set hive.exec.dynamic.partition.mode=nonstrict; set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; set hive.compactor.initiator.on=true; ; drop table tmp_ccc_20180716;
Union的语法格式如下: select_statement UNION ALL select_statement UNION ALL select_statement ... Union用于将多个SELECT语句的查询结果合并到一个结果集中,目前Hive只支持UNION ALL,也就是结果集中的重复记录不会被删除.SELECT语句返回列的数目和名称必须相同,否则会报schema错误.Union语句还可以嵌套在FROM子句中: SELECT * FROM ( select_statement U
本文整体分为两部分,第一部分是简写,如果能看懂会用,就直接从此部分查,方便快捷,如果不是很理解此SQL的用法,则查看第二部分,是详细说明,当然第二部分语句也会更全一些! 第一部分: hive模糊搜索表:show tables like '*name*'; 查看表结构信息:desc table_name; 查看分区信息:show partitions table_name; 加载本地文件:load data local inpath '/xxx/test.txt' overwrite into t