SQL-错题集锦

作者: Eqo | 来源:发表于2022-06-27 12:00 被阅读0次

多行转多列-字符串拼接 -字符串拼接

set hive.exec.mode.local.auto = true;

/*
同一部门会有多个绩效,求多行转多列结果

2014 B 9
2015 A 8
2014 A 10
2015 B 7
2014 B 6

a col_A col_B
2014 10 6,9
2015 8 7

*/
//建表
create table if not exists text.multi_row
(
dat string,
name string,
performance double
)row format delimited fields terminated by "\t"
;
//思路
load data local inpath "/text_re/resour.txt" into table text.multi_row;

insert into text.multi_row values
(2014,'B',9),
(2015,"A",8),
(2014,'A',10),
(2015,'B',7),
(2014,'B',6);
/*
思路 先按照 年份和name 进行分组,分组的内容 使用 collect_list 将绩效多行转为一列 存放的内容是数组
然后 使用case when 对 name 内容进行判别
1_ collect_list将多行转为一列 但是是 double类型的数组 hive中存储没有数组类型
2.concat_ws 只能对字符串类型进行拼接 将 数组内的double类型转换
3.出现了新零售的问题 一列数据中有null 和字符串
思路 group by 后 使用max 函数 !!
*/

with tmp as ( SELECT dat,name , concat_ws(",", COLLECT_LIST(cast(performance as string) ) ) PER
FROM text.multi_row GROUP BY dat,name)
select dat,
max(case when name ='A' then PER end ) as co1,
max(case when name ='B' then PER end ) as co2
from tmp group by dat;

left join 时 where 和 on的区别

image.png

A 十行

  • 在使用外连接的时候,hive 默认开启谓词下推,会先执行where中的过滤条件,on后边的过滤条件不一定生效,如果不写where 在读取的时候,默认不过滤 全读取

  • 左连接 left join ,右连接 right join
    左边的过滤条件放在on后边不生效,结果中还会有,但不参与join

列: a left join b on a.id = b.id and a.id ! = 1  结果集中还有 id = 1
  • 只有过滤条件放在where 后边才生效
    实际开发中先进行where过滤,然后再进行join 关联

hive sql 执行顺序

image.png

c
这条语句有两个mr 程序

MapReduce sql 备注
input from
map where[select] \join
shuffle group by\order by
reduce having[select]\limit\join

HIVE底层MR. select 可以发生再Map端也可以发生再reduce端
JOIN 可以发生在map端 也可以发生在Reduce端

相关文章

  • SQL-错题集锦

    多行转多列-字符串拼接 -字符串拼接 set hive.exec.mode.local.auto = true; ...

  • 错题集锦

    “纯阳学说”首见于 A A、《颅囟经》 B、《幼科发挥》 C、《幼幼集成》 D、《小儿药证真诀》 《颅囟经》中云“...

  • 一、数据库之SQL语句

    一、SQL创表 二、SQL-插入 三、SQL-修改 四、SQL-删除 五、SQL-查询 以上是SQL语句常用的用法...

  • 司考易错题集锦

    1:过失损坏财物,不构成犯罪 2:诈骗罪标准,数额较大2000元以上 3.过失诈骗不属于犯罪 4.过失致人死亡,1...

  • 这些题都是老师总结出来的1-3年级数学易考题,快给孩子测测吧

    1-3年级数学必考易错题集锦 对于小学数学的提升,刷题不失为一种有效手段,本期错题plus的小优就为大家整理了1-...

  • sql

    sql-基础sql-基础查询-1sql-基础查询-2sql-更新 概览 数据库(Database,DB):将大量数...

  • 综合素质——文化素养错题集锦

    1. 战国时期,诸侯间的兼并战争愈演愈烈,产生了多种外交、军事策略、主张“远交近攻”策略的是范雎。(孙膑-《孙膑兵...

  • sql-将日期转换为YYYYMM格式 几种方式

    sql-将日期转换为YYYYMM格式SELECT CONVERT(nvarchar(6), GETDATE(), ...

  • 正元学堂 (数学集锦)二年级 可打印

    二年级数学上册 易错题集锦 一、我会填。 1、下图中一共有( )条线段。 2、下图中有( )个角,有( )个直角。...

  • 第三套错题集锦

    婴儿注意选择的偏好,更复杂的刺激。 某幼儿给鱼下定义,说鱼是一种会游的动物,该幼儿的概括水平为依据,具体特征下定义...

网友评论

    本文标题:SQL-错题集锦

    本文链接:https://www.haomeiwen.com/subject/ghwnvrtx.html