SQL
数据查询
静听山水
Just do it
展开
-
arrayFilter
wu原创 2022-09-24 15:07:28 · 154 阅读 · 0 评论 -
日志转拉链表
sql原创 2022-08-30 09:22:24 · 177 阅读 · 0 评论 -
lateral view explode、lateral view posexplode
sql转载 2022-08-10 00:38:09 · 319 阅读 · 0 评论 -
count(*)和count(distinct *)
sql原创 2022-08-06 23:00:20 · 1132 阅读 · 0 评论 -
Null和三值逻辑
sql转载 2022-08-06 22:55:56 · 124 阅读 · 0 评论 -
ceil、lcase函数
sql原创 2022-08-06 22:53:09 · 317 阅读 · 0 评论 -
【无标题】
sql原创 2022-08-06 22:20:32 · 67 阅读 · 0 评论 -
Leetcode:180. 连续出现的数字-连续问题
sql原创 2022-08-06 22:11:26 · 126 阅读 · 0 评论 -
Leetcode:1225. 报告系统状态的连续日期-连续问题
sql转载 2022-08-06 21:57:15 · 180 阅读 · 0 评论 -
leetcode:618. 学生地理信息报告-行转列
sql转载 2022-08-06 21:23:13 · 185 阅读 · 0 评论 -
1127. 用户购买平台:union做维表
sql原创 2022-08-06 17:38:05 · 150 阅读 · 0 评论 -
关系模型:外键
sql转载 2022-07-24 13:06:06 · 1069 阅读 · 0 评论 -
Hive中使用Map类型
参考文章:如何在Hive中使用Map类型_hive中map类型最近遇到的一个问题,例如:有一张表A,表头是stu_id,class_id,class_score字段说明:stu_id,class_id都是唯一不重复的,class_score字段的内容是maping类型,如{"语文":"80","数学":"90","英语":"95"},现需取出第1个班语文成绩前10名学生及各自的语文成绩解决:selectstu_id,class_score['语文'] as chinese_score.原创 2022-05-27 21:10:35 · 643 阅读 · 0 评论 -
mysql客户端工具
Navicat Premium 16.0.12 强大的数据库管理工具 - 精品MAC应用分享原创 2022-04-18 19:44:22 · 576 阅读 · 0 评论 -
SPARK-SQL内置函数之字符串函数
SPARK-SQL内置函数之字符串函数_清风徐来-CSDN博客_spark sql trim转载 2021-12-31 21:47:15 · 998 阅读 · 0 评论 -
null和空的区别
null可以替换为数值int型0,不可以替换为空;字符串可以替换为空,不可以替换为int型的数字0;原创 2021-12-12 16:34:44 · 795 阅读 · 0 评论 -
sql中用explode函数扩充数据
本文主要介绍数据扩充的思路,比如我们在实际分析中给数据表添加字段:近7天销量,常规思路即sum([sale_cnt]) over(partition by [sku_id] order by [ord_date] asc rows 6 preceding)。但是通常这里有一些不可忽略的问题:1、销售事实表存的数据是每天有动销的明细,如果sku只是某些天有销售,则没有展示sale_cnt=0的那些记录--- 问题直接表现:近7天销量字段求和<=明细的近7天每天加起来求和)--- 解决办.原创 2021-12-12 16:00:27 · 7304 阅读 · 0 评论 -
trunc和date_trunc的区别
总结通过对两个函数的测试,发现有如下特点:针对的字段类型不同:trunc是针对date类型处理,date_trunc是针对time_stamp类型处理;如果输入的时候不是对应的类型,会自动用cast函数处理; 参数的位置:trunc的参数在后面,date_trunc的参数在前面; 仅从个人练习的情况看,trunc的用法比date_trunc少些,因为trunc到date级别,date_trunc到time_stamp级别,所以以后可以多用date_trunc和sub_str基本能够解决绝大部分需原创 2021-12-12 14:33:03 · 10178 阅读 · 2 评论 -
用hql求每天同时最大在线人数
用hql求每天同时最大在线人数_大数据吧唧吧唧-CSDN博客最近划水刷京东面试题,遇到一个看似简单的手写hql,大概题意如下:给定一个表event_log,字段有date,timestamp,event_name(只有login、logout两种),user_id。用hql求每天同时最大在线人数细细琢磨,此题不简单!难度在于求的是同时在线的人数,而不是每天在线人数。https://blog.csdn.net/qq_40713537/article/details/114096931?utm_medium=d转载 2021-10-11 19:06:25 · 182 阅读 · 0 评论 -
Hive_Hive 排序及优化 order by , sort by, distribute by, cluster by
Hive_Hive 排序及优化 ORDER BY, SORT BY, DISTRIBUTE BY, CLUSTER BY_迎难而上-CSDN博客Hive 提供了多重排序语句,我们这里对这几种排序方法做一解析,并进行测试编排如下: 试验场景 Hive 中的 ORDER BY 与其不足 Hive 中的 SORT BY,DISTRIBUTE BY Hive 中的CLUSTER BY 与其不足 完成相同功能的Job 执行时长对比实验场景:我们创建了一个按天分区的分区...https://blog.csdn.net/转载 2021-09-16 23:52:49 · 209 阅读 · 0 评论 -
Hive解析json(get_json_object)
【Hive】解析json(get_json_object)_喜东东的博客-CSDN博客get_json_object(string json_string, string path)说明: 第一个参数填写json对象变量,第二个参数使用$表示json变量标识,然后用 . 或 [] 读取对象或数组;如果输入的json字符串无效,那么返回NULL。 每次只能返回一个数据项。举例: data 为 test表中的字段,数据结构如下: data ={ "store":...http转载 2021-09-12 10:56:29 · 573 阅读 · 0 评论 -
数据库建表
create table if not exists share_label_di( pro_name string comment '省份' ,city_name string comment '城市' ,uid bigint comment 'ID')comment '分区格式yyyy-MM-dd'partitioned by( dt string comment '分区');set hive.exec.dynamic.partition.mode =.原创 2021-09-07 14:56:19 · 119 阅读 · 0 评论 -
一些sql函数
判断星期几:select cast(date_format('$[YYYY-MM-DD - 1D]', 'u') as int)判断当前时间是几点:select substr(from_unixtime(unix_timestamp(), 'yyyy-MM-dd HH:mm:ss'),12,2)多个文件名同列名去重:select count( distinct case when t1.user_id is not null.原创 2021-09-03 01:08:46 · 808 阅读 · 0 评论 -
max函数比较字符串类型
原创 2021-07-25 12:45:45 · 1110 阅读 · 0 评论 -
sql的null对求和的影响
比如原始数据为data_test:id cnt 1 2 2 null 2 7 3 3 4 5 测试1:select id, sum(cnt)from data_testgroup by id;id _c1 3 3 2 7 1 2 4 5 select sum(cnt)from data_test...原创 2021-07-11 09:25:08 · 1594 阅读 · 0 评论 -
sql分组求和、求平均
1·原创 2021-05-15 14:26:36 · 10637 阅读 · 0 评论 -
coalesce
学习链接:https://www.cnblogs.com/sakura3/p/12150232.htmlselect coalesce(a.dt, b.stat_date, c.dt) dtselect coalesce(null, null, null);-- Return nullselect coalesce(1, null, null);-- Return 1select coalesce(null, 1, null);-- Return 1..原创 2021-05-09 13:44:18 · 201 阅读 · 0 评论 -
substr,instr函数用法
substr常用于对字符串的处理--截取,比如处理时间格式、文本等对于yyyy-MM-dd HH:mm:ss,substr(col,1,10)取出年月日;substr(col,12,2)取出小时。 取出倒数的部分,substr(col,-1),substr(col,-2)等。substr(town_name, -1) in ('乡', '镇')可以取出以乡、镇结尾的一些地名。instr常用于对字符串的处理,主要是判断是否包含。注意参数的顺序,一般第一个参数是列名,第二个参数是具体的某些字符等原创 2021-05-09 12:34:47 · 1418 阅读 · 2 评论 -
Hive窗口函数之preceding and following
最近发现两个特别实用的Hive函数。preceding:向前 following:向后,这两个窗口函数可以实现滑窗求和(指定rows范围)或者指定范围内数据求和(指定range范围)学习链接:Hive窗口函数之preceding and following,试运行了下,结果如下:1.数据源:select *from stu_scoreorder by score;2.函数使用:select name, score, su...原创 2021-04-18 11:48:23 · 4273 阅读 · 2 评论 -
with函数
先占个坑,sql的with函数原创 2021-04-07 00:17:13 · 1650 阅读 · 0 评论 -
行转列
行转列:user_id ord_date 11 2021-03-01 22 2021-03-04 33 2021-03-11 44 2021-03-04 33 2021-03-05 44 2021-03-11 33 2021-03-07 select user_id, max(case when ord_rk = 1 then ord_date end) as first_ord_.原创 2021-03-23 21:05:47 · 145 阅读 · 0 评论 -
grouping sets、grouping__id、cube、rollup等使用方法
数据源:wjda_dev.cookie_cookie5 month_eg day_eg cookieid 2015-03 2015-03-10 cookie1 2015-03 2015-03-10 cookie5 2015-03 2015-03-12 cookie.原创 2021-02-28 00:00:11 · 187 阅读 · 0 评论 -
grouping sets的用法
HIve-Grouping sets用法grouping sets不需要把所有的列名进行组合,把需要的进行组合就可以了;(dt),(dt, lead_pro_name),(dt, lead_city_name),这里加了三种情况,分别表示的是每天全国维度,每天省份维度,每天城市维度,如果再加(dt, lead_pro_name,lead_city_name),这个就是和(dt, lead_city_name)一样的情况了,会造成重复,所以写的时候先考虑清楚,是需要将哪几种维度的放在一起。selec原创 2021-02-14 09:51:34 · 11778 阅读 · 0 评论 -
Hive:字符串函数
函数名称:concat用途:连接字符串格式:string concat(string,string)函数名称:get_json_object用途:根据指定的json路径从json字符串中提取json对象,并返回提取的json对象的json字符串。如果输入json字符串无效,它将返回null。注意:json路径只能有字符[0-9a-z_],即,没有大写或特殊字符。同样,键*不能以数字开头。*这是由于对Hive列名的限制。接口格式:string get_json_object(s...原创 2020-12-29 23:58:13 · 1978 阅读 · 0 评论 -
Hive:数学函数
函数名称:ceil用途:返回不小于输入值value的最小整数格式:bigint ceil(double) bigint ceil(decimal)函数名称:conv用途:进制转换函数格式:string conv(string,bigint,bigint)函数名称:floor用途:向下取整,返回比number小的整数值格式:bigint floor(double) bigint floor(decimal)函数名称:exp用途:指数函数格式:double exp..原创 2020-12-29 23:59:35 · 824 阅读 · 0 评论 -
生成总行数的数据
一般的,如果我们想统计频数,可以用select count(*) from table但是,如果想生成全是频数的一列,可以用下面的语句:select sum(1) over(partition by null) as rn11from table原创 2020-10-16 10:24:45 · 123 阅读 · 0 评论 -
Hive分析窗口函数(三) cume_dist,percent_rank
参考网址:Hive分析窗口函数(三) CUME_DIST,PERCENT_RANK – lxw的大数据田地,自己试着在mysql里做了一遍。数据准备:表salaryCUME_DISTCUME_DIST 小于等于当前值的行数/分组内总行数比如,统计小于等于当前薪水的人数,所占总人数的比例select dept,userid,sal,cume_dist() over(order by sal) as rn1,cume_dist() over(partition by dept o.原创 2020-10-16 10:21:39 · 708 阅读 · 0 评论 -
MySQL中TIMESTAMPDIFF和DATEDIFF函数的区别
下面说的前面减去后面,或者后面减去前面的意思是这样操作,结果是正数,如果将两个时间换个位置,将得到一个负数的结果。简记一下:D--大的前(大的时间在前)T---大的后(大的时间在后)1、TIMESTAMPDIFF:后面的时间减去前面的时间SELECT-- 时间相差不到24小时不算一天 timestampdiff(DAY,'2020-02-25 00:00:00','2020-02-26') day1, -- 1timestampdiff(DAY,'2020-02-25 00:0原创 2020-10-16 09:42:38 · 2109 阅读 · 0 评论 -
SQL知识体系
原创 2020-10-14 22:47:05 · 286 阅读 · 0 评论 -
sql分任意区间统计频数
用excel生成随机数,然后导入mysqlselect count(case when scores>=90 and scores<=100 then id end) as "[90,100]",count(case when scores>=80 and scores<=89 then id end) as "[80,89]",count(case when scores>=70 and scores<=79 then id end) as "[70,原创 2020-10-14 22:05:30 · 1982 阅读 · 0 评论