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
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论