sql 查询字段根据条件减去固定值_SQL语句常用知识清单

b5ec2534469803791d80055e990d88b8.png

一. 查询语句

1.DESCRIBE 语句

描述”指定表或视图中的所有列,可以帮助我们了解数据表中包含了哪些列

语法:

Describe table_name;

2.SELECT 语句

查询满足条件的记录总数

语法:

# 计算数据总数
SELECT COUNT(*) FROM "表格名”;

# 计算变量(去除了缺失值)
SELECT COUNT(字段名) FROM "表格名";

# 计算去重后的变量
SELECT COUNT(Distinct (字段名) ) FROM "表格名";

3.MIN/MAX/SUM/AVG 函数

最小值min,最大值max,平均值avg以及求和sum

语法:

SELECT  min("字段名")
    ,max("字段名")
    ,avg("字段名")
    ,sum("字段名")
    ,count("字段名") 
FROM "表格名";

二. 过滤语句

1.WHERE语句

WHERE语句是SQL语句中的筛选语句。它的主要功能是对数据按照特定的条件去进行筛选,一般位置在FROM的后面。

语法:

SELECT 列名称 FROM 表名称 WHERE 列运算符值

2.操作符

操作符是精确匹配

除了等号之外,我们还可以使用以下符号来满足我们不同的了解数据的需求。这类操作符的特点是:在操作符的右边,都是只有一个固定值,不管是数字还是字符。

- 不等于:<>或者!= , NOT

- 大于:>,

- 小于:<,

- 大于等于: >=

- 小于等于: <=

3.IS NULL

用 IS NULL 和 IS NOT NULL这两个来筛选NULL值

http://4.IN / BETWEEN / LIKE

- IN/BETWEEN 是范围匹配

- IN

- 只要满足其中一个就属于满足了WHERE的条件

- 语法:

SELECT "字段名"FROM "表格名"WHERE "字段名" IN ('值一', '值二', ...);

- BETWEEN

- 任何在两个取值范围之间的记录都被认为是满足了WHERE条件

- 语法:

SELECT "字段名"FROM "表格名"WHERE "字段名" BETWEEN '值一' AND '值二';

- LIKE是模糊匹配,通常搭档百分号符%

- 语法:

SELECT "字段名"FROM "表格名"WHERE "字段名" LIKE '值%';

5.AND/OR

AND操作符的逻辑是筛选出满足所有条件的数据OR操作符的逻辑是筛选出满足任何一个条件的数据

6.AS

- 对变量进行命名以及重命名

- 语法:

SELECT "字段名"AS"新字段名"FROM "表格名"

三. 连接语句

1.INNER JOIN...ON语句(最常用)

INNER JOIN语句两边是需要进行链接的两张表,ON后面的部分则是告诉SQL是根据两张表里的哪个字段去进行表与表之间的连接。语法:

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

2.LEFT/RIGHT JOIN语句

LEFT JOIN:包含LEFT JOIN语句左边表的全部记录以及语句右边表能匹配上的部分记录RIGHT JOIN:包含RIGHT JOIN语句右边表的全部记录以及语句左边表能匹配上的部分记录

3.FULL OUTER JOIN语句

inner join加上left join再加上right join三种join方式的结合

四. 数据聚合

1.GROUP BY 语句

GROUP BY语句可以实现按照特定字段包含的分类进行汇总计算的效果(比如求最小值,最大值,平均值求和等等)

2.ORDER BY 语句

在select from语句后面加上ORDER BY语句可以实现将显示结果按照特定字段进行排序的效果。默认为升序,最后加desc为降序 。

3.HAVING 语句

- 将HAVING语句添加在GROUP BY语句的最后,可以起到筛选出我们想要的结果的效果。

- HAVING语句中使用的筛选的变量一般是做过聚合运算处理之后计算出来的新变量。

- HAVING语句的前面一定要加一条GROUP BY的汇总语句。

4.CASE WHEN 语句

- CASE WHEN 语句主要是根据是否满足语句中的判断条件会落入不同的取值,对数据进行重新分类整理和命名。

- CASE WHEN语句在结尾部分必须有个END,来提示系统整个循环语句已经结束了。

五. 窗口函数

窗口函数(Window Function)是MySQL 8.0新增的一个重要的功能(注意:只有新版本才有!),可以为数据分析提供强大支持,总得来说,可以分为以下三种窗口函数:排名窗口函数、聚合窗口函数、取值窗口函数。

语法格式:

窗口函数()over(
partition by 分区的字段 
order by 排序字段 desc / asc)

要点:

① 会生成一个字段② 关键词:

  • 排序函数()
  • over:用来指定函数执行窗口范围。如果后面的括号中什么都不写则是指窗口范围是:满足where条件的所有行
  • partition by:窗口按照哪些字段进行分组,窗口函数在不同的分组上分别执行,例如按照某区域分组。
  • order by:按照哪些字段进行排序

③ 排序函数()over()是必选的④ over()括号里面的内容是可选的

下面具体来说一下,以下几类窗口函数:

1.排名窗口函数

排名窗口函数用于对数据进行分组排名。常见的排名窗口函数包括:

  • ROW_NUMBER,为分区中的每行数据分配一个序列号,序列号从 1 开始分配。
  • RANK,计算每行数据在其分区中的名次;如果存在名次相同的数据,后续的排名将会产生跳跃。
  • DENSE_RANK,计算每行数据在其分区中的名次;即使存在名次相同的数据,后续的排名也是连续的值。
  • PERCENT_RANK,以百分比的形式显示每行数据在其分区中的名次;如果存在名次相同的数据,后续的排名将会产生跳跃。
  • CUME_DIST,计算每行数据在其分区内的累积分布,也就是该行数据及其之前的数据的比率;取值范围大于 0 并且小于等于 1。
  • NTILE,将分区内的数据分为 N 等份,为每行数据计算其所在的位置。

2.取值窗口函数

取值窗口函数用于返回指定位置上的数据。常见的取值窗口函数包括:

  • FIRST_VALUE,返回窗口内第一行的数据。
  • LAST_VALUE,返回窗口内最后一行的数据。
  • NTH_VALUE,返回窗口内第 N 行的数据。
  • LAG,返回分区中当前行之前的第 N 行的数据。
  • LEAD,返回分区中当前行之后第 N 行的数据。

3.聚合窗口函数

聚合函数()over partition by 分区的字段 order by 排序字段 desc / asc)聚合函数,如sum. avg, count, max, min等

注意:窗口函数可以用于SELECT 列表或者ORDER BY 子句中,但是不能出现在其他子句中。

本篇为数据分析初学者在学习sql语句时常用知识点,大家可参照以上内容顺序学习巩固SQL语句。不要把它放进收藏夹吃灰喔~

END

后续我们还会分享更多实用干货和实战案例

敬请持续关注~

或留言你想要了解或学习的内容

我们择期安排

本文为爱数据学院作者南湖渔歌提供

版权归爱数据学院所有,转载请联系后台

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值