【第3章】简单查询和汇总分析

本章介绍第 2 章 2.2.1 节“简单查询”和 2.2.2 节“汇总分析” 相关的知识与面试题。

3.1简单查询

这个类型的题目主要考查的是 SQL 基础知识,是面试中比较基础的考题。考查知识点:

基本查询语句如何写?

数据清洗常用的 SQL 语句如何写?例如查找空值(缺失值)、重命名列名、去掉重复数据等。

SQL 语句的书写规则是什么?

3.1.1基本查询语句如何写

“查询”是 SQL 最基础的语句,也是学习 SQL 的入门之选。本节你将学习到如何用正确的SQL 语句的书写规则去查询表中的数据,并对表中字段进行简单的处理,如字段的重命名、删除重复数据、字段的合并等。

SQL 基本查询语句的语法如下:

select 表示查询结果。

from 表示从哪个表中查找数据。

where 表示查询条件。

3.1.2数据清洗常用的 SQL 语句如何写

1.查找空值(缺失值)

在实际的数据处理场景中,经常会遇到数据为空值的情况,如何用 SQL 查找出空值呢?

在 SQL 中,is null 语句用于查询空值,如果表中某一列中的数据值为空值,则表示满足查询条件。相反,is not null 语句用于查询非空值,如果表中某一列中的数据值不是空值,则表示满足查询条件。

面试题1:查找空值

【题目】

在表 3.1 中,找出姓名为空值和不为空值的教师信息。

【解题思路】

找出姓名为空值的教师信息,SQL 语句的书写方法如下:

查询结果如表 3.2 所示。

找出姓名不为空值的教师信息,SQL 语句的书写方法如下:

查询结果如表 3.3 所示。

2.重命名列名

需要在 select 子句中给对应列名用 as 关键字来定义一个新列名,语法如下:

3.去掉重复数据

(1)在使用 SQL 对数据进行提取和分析时,我们经常会遇到数据重复的场景,有时候, 需要根据业务场景,对数据进行去重后分析。

想要在 SQL 查询结果中去掉重复数据,需要用到 distinct 关键字,语法如下:

在使用 distinct 关键字去掉重复数据时,需要特别注意:distinct 语法规定,在对单字段、多字段去重时,必须放在第一个查询字段前。

例如,在学生表中,去掉学号和姓名重复的数据,若 SQL 语句书写为:

运行后会提示语法错误,正确的 SQL 语句的写法为:

(2)如果对表中多列字段进行去重,那么去重的过程就是将多字段作为整体去重,比如上面的例子,我们将“学号”和“姓名”作为整体进行去重(也就是某一行数据中的学号、姓名数据都相同时,才算作重复数据)。

面试题2:电商用户行为

【题目】

某电商公司在网上开店铺,该公司的“用户行为表”如表 3.4 所示。

【字段解释】

访客 id:进入店铺浏览商品的用户。

浏览日期:访客进入店铺浏览页面的日期。

浏览时长:访客进入店铺浏览页面的时长。

现在需要知道店铺里每个访客和对应的浏览日期(每个访客同一天浏览多次算作一次记录)。

【解题思路】

根据题目中的业务场景,需要同时根据“访客 id”“浏览日期”去掉重复数据,也就是某一行数据中的访客 id、浏览日期数据都相同时,才算作重复数据(每个访客同一天浏览多次算作一次记录)。

SQL 语句的书写方法如下:

查询结果如表 3.5 所示。

面试题3:简单的数据查询

【题目】

表 3.6 所示为某电商公司的“用户购买信息表”,你作为公司的业务人员,为了更好地分析数据,要求对数据做以下处理。

(1)剔除表中重复的购买记录。

(2)查询表中数据是否有空值的记录。

(3)将列“用户行为发生时间”重命名为“用户交易时间”。

【解题思路】

(1)剔除表中重复的购买记录。剔除重复记录可以用 distinct 关键字来实现,SQL 语句的书写方法如下:

(2)查询表中数据是否有空值的记录。查找空值我们使用运算符中的空值查询语句 is null,SQL 语句的书写方法如下:

查询结果如表 3.7 所示。

(3)将列“用户行为发生时间”重命名为“用户交易时间”。给列名重命名(也就是起别名)需要用到 SQL 关键字 as,SQL 语句的书写方法如下:

查询结果如表 3.8 所示。

【本题考点】

本题考查 SQL 基本查询内容,考查知识点如下。

(1)用 is null 语句来查询空值。

(2)用 as 关键字对字段进行重命名(起别名)。

(3)用 distinct 关键字去掉重复数据。

3.1.3SQL 语句的书写规则是什么

下面总结了常用的 SQL 语句的书写规范。

(1)SQL 语句以英文分号(;)结尾。

SQL 语句中用英文分号(;)表示本条语句结束,就像中文讲完一段话用句号(。)表示句子的结束一样。如果不加英文分号,那么在单条语句中,程序可以运行不会报错,但是在多条语句中,程序会误以为是一条语句来执行,结果就会报错。

(2)SQL 语句不区分英文语句的大小写。

SQL 语句中,部分英文语句为数据库中事先定义的、有特殊意义的单词(如 select、 and、from 等),比如,我们对“学生表”用 select 语句来查询,在代码中可以写成“SELECT” 或者“Select”,对运行结果都没有影响,可根据个人习惯进行书写。

(3)列名不能加单引号,同时列名命名时不能有空格。

列名与字符串是两个完全不同的概念,在查询列名时,不能加单引号,如:

运行之后,SQL 一定会报错,有兴趣的读者可以尝试运行一下。

这同时也要求在给列名命名时,列名里不能有空格,比如列名“姓 名”,在“姓”和“名” 之间加了空格,这在 SQL 中是没有办法区分的。

(4)使用英文符号。

在使用 SQL 语言时,所有用到的符号都需要是英文符号,即输入法在英文状态下输入的各类符号,这样程序运行才不会报错。有些时候,英文符号和中文符号用肉眼很难分辨,但是只要你足够认真仔细,就能够发现二者之间微小的区别,如图 3.1 所示。

掌握了基本的书写规则,既可以规避书写中带来的问题,又可以写出清晰优雅的代码,为SQL 的运行保驾护航。

3.2汇总函数与分组的应用

汇总分析在工作里经常要用到,比如,分析每个部门的销售业绩。这个类型的题目主要考查如何用 SQL 进行汇总分析。

考查知识点:

汇总函数、分组汇总、SQL 书写顺序和运行顺序。

3.2.1汇总函数

说到汇总分析,必须要提到汇总函数,那什么是汇总函数呢?

汇总函数也被称为聚

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

SQL面试宝典 文章被收录于专栏

本书以SQL的基础知识为出发点,从SQL的简单查询、汇总函数、分组,到多表查询、窗口函数等SQL高级功能,逐一进行介绍与讲解,基本涵盖了学习SQL过程中需要掌握的主要内容。 本书结合大量的面试题,让读者清楚地了解如何用所学的SQL知识解决工作中的实际问题。提供了从不同行业、不同岗位的业务场景出发的实战项目训练,便于读者在实践中学习,巩固知识和技能,理解与掌握相关内容,并将其快速应用于实际工作中。

全部评论
点赞 回复 分享
发布于 2024-03-07 21:32 广东
点赞 回复 分享
发布于 2024-03-07 21:27 广东
点赞 回复 分享
发布于 2024-03-07 21:20 浙江
点赞 回复 分享
发布于 2024-03-07 21:14 上海
点赞 回复 分享
发布于 2024-03-07 21:03 四川
点赞 回复 分享
发布于 2024-03-07 20:57 江苏
点赞 回复 分享
发布于 2024-03-07 20:52 江苏
点赞 回复 分享
发布于 2024-03-07 20:46 辽宁

相关推荐

码农索隆:充分发挥学生的价值。 校长银行卡扣款100w,都以为是自动付款没关
你找实习最大的坎坷是什么
点赞 评论 收藏
分享
评论
12
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务