极客视点
极客时间编辑部
极客时间编辑部
113245 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:31
登录|注册

SQL基础知识总结(下)

讲述:丁婵大小:7.57M时长:05:31
你好,欢迎收听极客视点。
SQL 是一门古老的语言了,对于大部分 SQL 用户来说,主要做的是面向业务的数据工作。腾讯 CDG 数据分析师李扬洁将这部分内容细分为库表基本操作、数据查询语句、数据聚合与连接、函数应用等场景,并对不同场景中的基础知识进行了总结,供你参考。在上一篇文章中,我们分享了库表基本操作、数据查询语句的基础知识,本文继续分享其余三个场景的基础知识,如下。

数据聚合与连接

上一篇文章讲到的数据查询语句,不管怎么查询,其实并不影响原生的表结构,即原来的表是按照什么逻辑写的数据,查询结果里的数据也是基于这种逻辑,只是筛选了局部数据而已。但数据聚合与连接就不一样了,聚合会在纵向上改变原生表结构,连接则在横向上拓展了表结构。

数据聚合

要对一张表做数据聚合,其实理解了两个概念即可:维度和指标。维度是你要基于哪些字段来做聚合,指标是在这个维度之上,你想用什么汇总函数生成哪些指标。数据聚合的关键字是 group by,维度里的属性值仍来自于原生表,指标则是新生成的汇总值。

数据连接

对两张表或者 N 张表做连接,是 SQL 里面非常重要的一个内容,也是最容易埋坑的一个坑点。尽管数据连接只涉及四种方式、七个语法,但其仍然是绝大部分 SQL 脚本的核心内容。选择合适的可靠的数据连接方式,应该是一个 SQL 运动员的基本功了。

函数应用

函数库,其实就像是一个数据处理与分析的百宝箱,收藏着各种场景下需要用到的车轮子。对函数库的熟悉和掌握,可以较好地提升工作效率,也让计算脚本显得轻量而简洁。毕竟站在通用函数的肩膀上,很多统计逻辑是可以一步到位的,不需要沉迷于山重水复的自主构造里。以下参考 TDW 的函数库分类,将日常所用的函数细分为几个子类别。

数学函数

SQL 里的数学函数主要和数值处理有关,有取值函数和变换函数等。取值函数包括 round 四舍五入、abs 取绝对值、ceil 向上取整等,主要用于对具体数值的细节调整。变换函数则会改变该字段的数据分布形态,如正弦 sin,余弦 cos,或者开根号 sqrt 等。

聚合函数

在数据聚合中,选择了具体字段作为聚合维度后,便是应用各种聚合函数得到汇总值的过程。其中有简单聚合函数如 count 计数、sum 求和、avg 求平均;也可以基于分布特征,max/min 取极值、std 取标准差、variance 取方差。另外若在聚合过程中涉及分区处理的话,也有 rank、first/last_value、row_number 等函数可以应用。

时间和日期函数

对时间数据的处理,同样也是 SQL 里的一个重要课题,主要细分为时间的加减、取值和转换这三类。其中时间加减里,又涉及不同的时间维度,比如按日维度有 date_diff、date_add、date_sub 等;按月维度有 month_between、add_months 等。时间取值函数则是在一个详细的时间戳里,取出自己想要的部分,如 year、month、day、hour 等。时间转换函数则是时间形式的切换,如日期格式,格林尼治时间戳格式等。

文本处理

数据类型可以粗糙地分为数值数据和文本数据,对于文本数据的处理,也有很多对应的函数。其中有一些简单取值函数,如通过 length 和 size 获得字段长度和数组大小,通过 upper 和 lower 可以切换大小写。字符串的切割与拼接,由浅入深有 split、substr、concat、wm_concat 等。正则表达式也是文本处理中一个特别重要的模块。

其它函数

除了以上所盘点的一些通用函数外,其实在日常工作中会有很多垂直的业务场景,在这些特定场景下也有一些特定的函数逻辑。比如涉及数组结构拆分与重构时,可以应用 later view 函数;涉及字段编码时,也有加密与解析函数。除此之外,还有逻辑函数、转换函数等多种特殊函数,在特定的场景下,这些函数其实也是必要的。

具体开发环境的注意点

和其它众多语言一样,SQL 的编写也不能脱离其自身的开发环境,不同的数据库形态、不同的 IDE,都会有一些差异点和新特性。具体开发环境的注意事项,则要在具体环境中去发现和探索。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
大纲
固定大纲
数据聚合与连接
数据聚合
数据连接
函数应用
数学函数
聚合函数
时间和日期函数
文本处理
其它函数
具体开发环境的注意点
显示
设置
留言
收藏
47
沉浸
阅读
分享
手机端
快捷键
回顶部