HiveSQL
文章平均质量分 54
Samooyou
这个作者很懒,什么都没留下…
展开
-
hive-SQL中将表压扁,字段变多
利用coalesce()搭配group方法使用select name, max(case when subject='数学' then source end 0) math, max(case when subject='语文' then source end 0) chinese, max(case when subject='英语' then source end 0) english,from t1group name...原创 2021-11-02 21:18:07 · 1034 阅读 · 0 评论 -
Hive-SQL中的多表Full join
思路:Full join + coalesec()的使用select coalesce(t1.id,t2.id,t3.id) id, t1.C1 C1, t2.C2 C2, t3.C3 C3from t1 full join t2 on t1.id=t2.id full join t3 on coalesce(t1.id,t2.id)=t3.id;原创 2021-11-02 21:17:51 · 1335 阅读 · 0 评论 -
一文关于谓词下推的SQL
总结:优化--保留表条件写到 where后,非保留表条件写到 on后;SQL题:A表clt_id clt_nam 1001 A 1002 B 1002 B 1003 C 1003 C 1006 F B表clt_id clt_nam 1001 1 1002 2 1003 3 1003 3 1003 3 1004 4 1005原创 2021-10-28 15:44:35 · 206 阅读 · 0 评论 -
数据倾斜处理
数据倾斜----------------------数据倾斜的处理思路1. 数据倾斜产生原因做数据运算的时候会涉及到,count distinct、group by、join on等操作,这些都会触发Shuffle动作。一旦触发Shuffle,所有相同key的值就会被拉到一个或几个Reducer节点上,容易发生单点计算问题,导致数据倾斜。1.key分布不均匀2.建表时考虑不周关联字段的 数据规范不一致:①类型不一致 ②默认值不一致例:假设我们有两张表:user(用户信息原创 2021-10-23 20:35:36 · 1938 阅读 · 0 评论 -
HIVESQL随笔---03
题目:数据:stusubject score数学,30数学,50语文,65数学,55英语,80数学,50语文,60数学,80语文,90结果:subject score num数学,30,1数学,50,1数学,50,1数学,55,1语文,60,2语文,65,2英语,80,3数学,80,4语文,90,5请写出SQL输出结果表输出一:--1)科目的改变的定位,lag()+over()得到上次的科目select subject,score原创 2021-07-31 23:02:47 · 208 阅读 · 1 评论 -
HIVESQL随笔---02
已知一个表STG.ORDER,有如下字段:Date,Order_id,User_id,amount。请给出sql进行统计:数据样例:2017-01-01,10029028,1000003251,33.57。建表create table order_tab(dt string,order_id string,user_id string,amount decimal(10,2)) row format delimited fields terminated by '\t';1)给出 2017年原创 2021-07-30 13:07:14 · 215 阅读 · 0 评论 -
HIVESQL随笔---01
题目:用户访问数据 userId visitDate visitCount u01 2017/1/21 5 u02 2017/1/23 6 u03 2017/1/22 8 u04 2017/1/20原创 2021-07-30 12:54:22 · 158 阅读 · 0 评论 -
LeetCode-----569. 员工薪水中位数
题目解析: --中位数:按顺序排列的一组数据中居于中间位置的数----顺序和居中--中位数的解决办法(+1,+2向下取整)----row_number()排序,count()计算总的个数n,根据+1向下取整(floor((n+1)/2))和+2 向下取整数(floor((n+2)/2))来处理Employee 表包含所有员工。Employee 表有三列:员工Id,公司名和薪水。+-----+------------+--------+|Id | Company | Salary |...原创 2021-07-23 23:50:40 · 329 阅读 · 0 评论 -
LeetCode-----571. 给定数字的频率查询中位数
题目技术:1、获取保留小数的方法:round(xxx,n),对于xxx的值保留n位小数,并且是根据四舍五入保留,(eg:select round(3.1415926,4) ; 得到 值为 3.1416);(同时round()能够搭配其他的函数使用保留小数,例如本题);2、sum()聚合函数搭配over()开窗函数使用,(开窗函数并不会改变表的字段结构,只会增加一个新的字段)用法: sum(C) over (partition by A order by B rows between 开...原创 2021-07-23 20:35:05 · 197 阅读 · 0 评论