当前位置: 首页 > news >正文

BDA初级分析——用SQL筛选数据

一、用SQL对数据分组

GROUP BY


Group by,按...分组
作用:根据给定字段进行字段的分组,通常和聚合函数配合使用,实现分组的分析

写法:select ...from ...group by 字段名 (也可以是多个字段)

 GROUP BY的逻辑

SELECT gender,COUNT(user_id) FROM users GROUP BY gender;

二、用SQL筛选数据

 WHERE


Where,在哪儿
作用:对数据按照特定的条件去进行筛选,找到符合条件的数据

写法 :select ...from ... where 条件

 AND/OR,多重条件的组合


AND,且;OR,或
作用:多个条件以“且”“或”的方式连接,进行条件的约束

写法:select ...from ... where 条件1 and/or 条件2(如果有更多条件,可继续补充)

 操作符(operator )


等于=
大于>
小于<
不等于<>或!=
大于等于>=
小于等于<=

 IS NULL


is null:字段为空值

ls not null:字段不为空值

 IN


in : 在...之中
作用:in可以看作是or和=的组合,但写法更加简便

写法 :IN(值1,值2,值3...值n)

 

 BETWEEN


between:在...之间
作用:找出两个值之间的数据

写法:BETWEEN 值1AND 值2

 

 LIKE


like : 类似,近似通配符 :%
作用:实现模糊查询

写法 :like要查找的内容+%的组合,%的用法类似Excel中的*

 通配符位置带来的区别

 HAVING,对聚合后的结果做筛选


having:有
作用:对聚合后的结果做筛选,找到符合条件的结果

写法:SELECT...( 这里有聚合函数)FROM ...GROUP BY ...HAVING 条件(这里的条件针对聚合函数)

 ORDER BY


Order by: 按照..排序
作用:对显示的结果按照字段进行大小排序

写法:SELECT...FROM ...ORDER BY字段名(这里也可以是多个字段

 

三、随堂练习

 正确答案: 正确 
解析:
WHERE语何一般位置在FROM的后面

 正确答案: 错误
解析:

注意区分HAVING与WHERE,在本题里,是对聚合后的结果做筛选,因此应当使用HAVING

 正确答案: 错误 
解析:
GROUP BY应该在FROM之后

 正确答案:错误
解析:

筛选的变量满足其中一个值就属于满足条件的情况下,可以用IN简写,

但下面这些情况下,IN都无法代替OR的功能:

SELECT*FROM orders WHERErev>0 OR units>0;
SELECT*FROM ordersWHERE rev<100 0R rev>1000

 正确答案: AC 
解析:
AND表示且,需要同时满足AND两边的条件:

OR表示或,即满足任一条件即可:

BETWEEN代表在两者之间,且包含两端:

IN表示在列出的这些值中在这里即代表=0或=1000

 正确答案: 正确 
解析:
注意区分HAVING与WHERE,在本题里,WHERE筛选的仍然是user id这个原始数据中存在的字段且位置在GROUP BY前,而并非对聚合后的结果做筛选

 正确答案: 正确
解析:

注意区分HAVING与WHERE,在本题里,是对聚合后的结果做筛选,因此应当使用HAVING

正确答案:C
解析:

在SQL语句中,%代表通配符,可以代替任何字段,且需要和LIKE搭配使用

 正确答案: BCD
解析:
NULL代表了数据的缺失,它不是0,也不是空格,只能用IS NULL 来表达

 正确答案: 错误 
解析:
默认是升序排列,如果需要降序排列,需要在ORDER BY 结尾增加DESC

 正确答案: 正确 
解析:
WHERE语句就是SQL语句中的筛选语句

http://www.lryc.cn/news/132072.html

相关文章:

  • (成功踩坑)electron-builder打包过程中报错
  • 【STM32】 工程
  • Git概述
  • ubuntu 编译安装nginx及安装nginx_upstream_check_module模块
  • 近 2000 台 Citrix NetScaler 服务器遭到破坏
  • MySQL MVCC的详解之Read View
  • 基于springboot+vue的考研资讯平台(前后端分离)
  • 学习网络编程No.3【socket理论实战】
  • Linux学习之ssh和scp
  • 录制游戏视频的软件有哪些?分享3款软件!
  • 每日一题——螺旋矩阵
  • 前端面试的性能优化部分(12)每天10个小知识点
  • SAP BTEs 业务交易事件/增强(Business Transaction Event)
  • leetcode做题笔记90. 子集 II
  • “开发和运维”只是一个开始,最终目标是构建高质量的软件工程
  • 自学C#,要懂得善用MSDN
  • mac上如何压缩视频大小?
  • git merge规则
  • 【周末闲谈】关于“数据库”你又知道多少?
  • C++ 对象生成:构造函数
  • RFID如何在汽车混流生产中进行车辆跟踪?
  • 差值结构的复合底部
  • 在Docker 上使用 Nginx 配置https及wss
  • git回退操作
  • C++系列-类和对象-静态成员
  • SAP MM学习笔记26- SAP中 振替转记(转移过账)和 在库转送(库存转储)2- 品目Code振替转记 和 在库转送
  • 【Python机器学习】实验13 基于神经网络的回归-分类实验
  • 【数据结构】二叉树的链式结构的实现 -- 详解
  • 【C语言】什么是结构体内存对齐?结构体的大小怎么计算?
  • 【Redis】Redis中的布隆过滤器