对比Excel学习SQL(4):计算字段
今天这篇文章是对比Excel学习SQL系列的第4篇文章,之前3篇的传送门在这里:《对行和列的操作》、《库/表/记录的增查删改》、《写给小白的SQL学习文章》。
计算字段的意思是通过原有字段的运算创建新的字段,本文主要从算术运算符计算字段、函数计算字段和聚合函数的应用三个方面来分享。
一、算术运算符计算字段
算术运算符就是加减乘除运算符,用算术运算符创建字段直接在select后写命令。
--select 列 算术运算符 from 表;--从sc成绩表里提取学号、成绩以及每个学生的成绩加5select snum,score,score + 5 as score2 from sc;
给新创建的字段赋予名称,用到【AS】命令
这里我们对sc表里的score列每个数值都+5得到一个新的score2字段,如下:
我们想一下这个操作对应在Excel里就是很简单的新建一列,然后赋值,如下动图:
二、函数计算字段
01 日期函数
对日期时间型数据进行操作的函数,日期函数里用到较多的是YEAR()、MONTH()、DAY(),Excel里也有这三个函数,作用都是提取某个日期下的年、月、日的数据。
如下例,提取2003年3月3日出生的学生,这里可以不用DATE()函数,因为sage列本身就已经预设成了日期格式,需要注意的是,筛选日期时要用单引号引起来。
--提取2003年3月3日出生的学生的数据select * from student1 where sage = '2003-03-03';select * from student1 where DATE(sage) = '2003-03-03';
【MONTH】
再如下例,提取2003年出生的所有学生记录。
--提取2003年出生的学生的数据select * from studenet1 where YEAR(sage) = 2003;
同理,MONTH()函数和DAY()函数也是这样的用法。这个操作在Excel里相当于新建一列year字段,用YEAR()函数作用于sage字段,得到每个学生出生日期的年份,最后筛选出2003年的学生数据,整个过程如下动图所示:
02 文本函数
对字符型数据进行操作的函数,这里文本函数和Excel里相应函数的用法都是一样的,不同的是length()函数对应的是Excel里的len()函数,名字不同罢了,想要复习Excel里文本函数的同学,传送门在这里:《Excel文本函数》
SQL里的文本函数是这样的:
函数 | 说明 | 使用 |
Left() | 从一个字符串最左边开始返回指定个数的字符 | Left(字符串,返回个数) |
right() | 从一个字符串最右边开始返回指定个数的字符 | right(字符串,返回个数) |
Length() | 返回字符串的长度 | Length(字符串) |
【left】
提取每个学生的姓
--提取学生的姓select sname,left(sname,1) as f_name, sage from student1;
在Excel里是这样操作:新建一列f_name,对sname作用left函数,如下动图:
03 数值函数
对数值型数据进行处理的函数,这些函数在Excel里也是这样的用法,常见的有:
函数 | 说明 | 使用 |
Abs() | 返回一个数值的绝对值 | Abs(数值) |
Exp() | 返回一个数的指数值 | Exp(数值) |
Round() | 把数值四舍五入为指定数值 | Round(数值,返回的小数位数) |
对成绩一列取整:
--对成绩一列取整select snum,score,round(score,0) from sc;
三、聚合函数
聚合函数是对数值数据进行汇总的函数,主要有以下:
函数 | 说明 |
COUNT() | 计数 |
SUM() | 求和 |
AVG() | 平均值 |
MAX() | 最大值 |
MIN() | 最小值 |
这些和Excel相应函数的用法也一致,需要注意的是同Excel一样,聚合函数得到的是一个数据,而非一系列查询后的记录。
01 COUNT函数
count函数是对行进行计数。
--select count(列) from 表;对特定列的值计数--select count(*) from 表; 可以查看表的总行数--select count(DISTINCT 列) from 表; 去重以后的行数
查询student1表总有有几行;
查询性别一列不重复的有几行
select count(*) from student1;select count(DISTINCT sex) from student1;
以上count函数计数的操作在Excel里就是count函数的应用:
02 SUM函数
sum函数是对指定列求和。
--select sum(列) from 表;
对sc表中的成绩一列求和。
select sum(score) from sc;
对学号为1的学生的成绩求和:
select sum(score) from sc where snum = 1;
第二个列子对学号为1的学生的成绩求和,在Excel里用到sumif条件求和函数,公式“=SUMIF(A:A,A2,C:C)”的意思是对A列里等于1的条件求和。
03 AVG函数
Acg函数用于对列求平均值,在Excel里这个函数的名字变了,是average(),大家不要搞混哦。
--select avg(列) from 表;select avg(score) from sc;
对成绩一列求平均值
在Excel里,用AVERAGE()函数对score一列求平均值
04 MAX函数
返回指定列中的最大值。
--select max(列) from 表;select max(score) from sc;
找出最高成绩
在Excel里用max()函数对score一列求最大值
05 MIN函数
返回制定列中的最小值。
--select min(列) from 表;select min(score) from sc;
找出最低的成绩
在Excel里用min()函数对score一列求最小值
06 聚合函数的综合应用
通过求和、计数、最值的统计进行简单的描述性统计分析,可以了解数据的大致分布。
select sum(score) as sum_sc,avg(score) as avg_sc,max(score) as max_sc,min(score) as min_sc from scl
在Excel里之前也提到过,用【数据】——【数据分析】——【描述统计】来做描述性统计分析。
step1:打开【数据】——【数据分析】——【描述统计】对话框
step2:将要分析的数据输入到输入区域,勾选汇总统计前的选框。
step3:得到分析结果如图
具体的关于Excel描述统计的内容,请移步《描述性统计分析》前往查看。
对比Excel学习SQL系列的第4篇就到这了,更多精彩敬请期待~
更多相关文章
- 从零到一学懂区块链(6):哈希函数
- 动画:一个底层运行函数的自白!
- 使用Eclipse实现自定义Jmeter函数助手
- Cocos平台 | 快速集成AGC云函数服务
- 正确使用异步函数的姿势[每日前端夜话(0x06)]
- Numpy中Meshgrid函数介绍及2种应用场景
- Python中匿名函数与内置高阶函数详解
- 面试必知必会|理解C++虚函数
- 类和函数傻傻分不清楚?三个例子讲明白