sql
Z~Q~1727
这个作者很懒,什么都没留下…
展开
-
hive的三种排序方式
经常会出现需要排序的问题,比如说学生成绩相同的时候以什么规则进行排序。排序使用到以下三个函数:Row_number/rank/dense_rank:原表如下test_table:name scorezhangsan 98lisi 95wangwu 95zhaoliu 95zhuqi 90效果比较:1...原创 2019-10-29 17:47:16 · 1572 阅读 · 0 评论 -
开窗函数实现累加
开窗函数使用SQL里开窗函数灵活运用以后可以给数据的计算提供很大的便利性,话不多说,直接进入正题,表结构如下:对照这个表我想知道每个学生的总成绩,各科目的最高分,每个班级的平均成绩,这时用开窗函数就可以一次性求出来。SELECT DISTINCT stuid,stuname,class,course,sum(score) over(partition by stuid,stuname) ...原创 2019-10-25 12:36:24 · 4952 阅读 · 0 评论 -
hive中灵活运用正则表达式处理字段
灵活运用正则表达式hive中经常会需要处理字符串,本篇文章就来聊聊如何灵活运用正则表达式来出来数据;正则表达式中的符号介绍^ 匹配输入字符串的开始位置。$ 匹配输入字符串的结束位置。[…] 字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。[^…] 负值字符集合。匹配未包含的任意字符。例如, ‘[^abc]’ 可以匹配 “plain” ...原创 2019-10-23 16:11:16 · 1066 阅读 · 0 评论 -
hive []里的字段计数问题
hive []里的字段计数问题@TOC欢迎使用Markdown编辑器例如有下面一个字段,需要计算[]中的数字个数string1[][9005][9005,9006][9005,9001,9002,9008,9007,9004,9007,9003][9004,9002]看到这个问题,第一想法是计算[]中,的个数,这时可以用instr函数。但是这个问题主要需要解决的是为空和1个数字...原创 2019-10-22 11:41:33 · 1511 阅读 · 0 评论 -
hivesql 行转列(collect_set)与列转行(explode和posexplode)
hivesql 行转列与列转行列转行函数——collect_set和collect_listhive里通常通过collect_set和collect_list来进行列转行,其中collect_list为不去重转换,collect_set为去重转换。下面我们将通过一个实例来进行说明:创建一个学生成绩表CREATE table student_score(stu_id string com...原创 2019-06-14 11:06:04 · 19633 阅读 · 1 评论