第10周 函数的使用

第10周 · 函数的使用

常用内置函数、窗口函数、自定义函数

项目8阶段05单元6 Hive函数应用

本实训对应的知识点

实训内容与步骤 依据原始实训文档整理,命令与配置均来自文档原文

11函数的基本用法

以下命令可用于查询所有内置函数的相关信息。

查看系统内置函数

如图1-1所示,使用如下命令,查看系统内置函数。

📷 图1-1 查看系统内置函数
SQL
show functions;

查看内置函数用法

如图1-2所示,使用如下命令查看upper函数的用法。

📷 图1-2 查看内置函数用法
SQL
desc function upper;

查看内置函数详细信息

如图1-3所示,使用如下命令查看upper函数的详细信息。

📷 图1-3 查看内置函数详细信息
SQL
desc function extended upper;

12内置函数

单行函数的特点是一进一出,即输入一行,输出一行。

单行函数按照功能可分为如下几类: 日期函数、字符串函数、集合函数、数学函数、流程控制函数等。

111算术运算函数

运算符 描述 A+B A和B 相加 A-B A减去B A*B A和B 相乘 A/B A除以B A%B A对B取余 A&B A和B按位取与 A|B A和B按位取或 A^B A和B按位取异或 ~A A按位取反 案例实操:查询出所有员工的薪水后加1显示。

SHELL
hive (default)> select sal + 1 from emp;

112数值函数

1)round:四舍五入

如图1-4所示,显示3.3四舍五入后的值。

📷 图1-4 round函数的使用
SQL
select round(3.3);

ceil:向上取整

如图1-5所示,对3.1进行向上取整。

📷 图1-5 ceil函数的使用
SQL
select ceil(3.1) ;

floor:向下取整

如图1-6所示,对4.81进行向下取整。

📷 图1-6 floor函数的使用
SQL
select floor(4.8);

113字符串函数

1)substring:截取字符串

语法一:substring(string A, int start)

返回值:string

说明:返回字符串A从start位置到结尾的字符串

语法二:substring(string A, int start, int len)

返回值:string

说明:返回字符串A从start位置开始,长度为len的字符串

案例实操:

(1)如图1-7所示,获取第二个字符以后的所有字符

📷 图1-7 使用substring函数获取第二个字符以后的所有字符
SQL
select substring("hadoop",2);

(2)如图1-8所示,获取倒数第三个字符以后的所有字符

📷 图1-8 使用substring函数获取倒数第三个字符以后的所有字符
SQL
select substring("hadoop",-3);

(3)如图1-9所示,从第3个字符开始,向后获取2个字符

📷 图1-9 使用substring函数获取从第3个字符开始,向后获取2个字符
SQL
select substring("hadoop",3,2);

2)replace :替换

语法:replace(string A, string B, string C)

返回值:string

说明:将字符串A中的子字符串B替换为C。

如图1-10所示,将hadoop中的a替换为A。

📷 图1-10 replace函数的使用
SQL
select replace('hadoop', 'a', 'A')

3)regexp_replace:正则替换

语法:regexp_replace(string A, string B, string C)

返回值:string

说明:将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符。

如图1-11所示,将‘100-200’中的整数替换为‘num’。

📷 图1-11 regexp_replace函数的使用
SQL
select regexp_replace('100-200', '(\\d+)', 'num') ;

4)regexp:正则匹配

语法:字符串 regexp 正则表达式

返回值:boolean

说明:若字符串符合正则表达式,则返回true,否则返回false。

(1)如图1-12所示,正则匹配成功,输出true

📷 图1-12 regexp正则匹配成功,输出true
SQL
select 'dfsaaaa' regexp 'dfsa+'

(2)如图1-13所示,正则匹配失败,输出false

📷 图1-13 regexp正则匹配成功,输出false
SQL
select 'dfsaaaa' regexp 'dfsb+';

5)repeat:重复字符串

语法:repeat(string A, int n)

返回值:string

说明:将字符串A重复n遍。

如图1-14所示,将‘123’重复3遍。

📷 图1-14 repeat函数的使用
SQL
select repeat('123', 3);

6)split :字符串切割

语法:split(string str, string pat)

返回值:array

说明:按照正则表达式pat匹配到的内容分割str,分割后的字符串,以数组的形式返回。

如图1-15所示,用‘-’分割'a-b-c-d'成一个数组。

📷 图1-15 split函数的使用
SQL
select split('a-b-c-d','-');

7)nvl :替换null值

语法:nvl(A,B)

说明:若A的值不为null,则返回A,否则返回B。

如图1-16所示,第一个值为null,返回1。

📷 图1-16 nvl函数的使用
SQL
select nvl(null,1);

8)concat :拼接字符串

语法:concat(string A, string B, string C, ……)

返回:string

说明:将A,B,C……等字符拼接为一个字符串

如图1-17所示,将5个字符串连接起来。

📷 图1-17 concat函数的使用
SQL
select concat('beijing','-','shanghai','-','shenzhen');

9)concat_ws:以指定分隔符拼接字符串或者字符串数组

语法:concat_ws(string A, string…| array(string))

返回值:string

说明:使用分隔符A拼接多个字符串,或者一个数组的所有元素。

如图1-18所示,使用‘-’,将后面三个字符串连接起来。

📷 图1-18 concat_ws函数的使用
SQL
select concat_ws('-',array('beijing','shenzhen','shanghai'));

10)get_json_object:解析json字符串

语法:get_json_object(string json_string, string path)

返回值:string

说明:解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL。

(1)如图1-19所示,获取json数组里面的json具体数据

📷 图1-19 获取json数组里面的json具体数据
SHELL
hive> select get_json_object('[{"name":"大海海","sex":"男","age":"25"},{"name":"小宋宋","sex":"男","age":"47"}]','$.[0].name');

如图1-20所示,获取json数组里面的数据

📷 图1-20 获取json数组里面的数据
SQL
select get_json_object('[{"name":"大海海","sex":"男","age":"25"},{"name":"小宋宋","sex":"男","age":"47"}]','$.[0]');

114日期函数

1)unix_timestamp:返回当前或指定时间的时间戳

语法:unix_timestamp()

返回值:bigint

如图1-21所示返回'2022/08/08 08-08-08'的时间戳。

📷 图1-21 unix_timestamp函数的使用
SQL
select unix_timestamp('2022/08/08 08-08-08','yyyy/MM/dd HH-mm-ss');

说明:-前面是日期后面是指,日期传进来的具体格式

2)from_unixtime:转化UNIX时间戳(从 1970-01-01 00:00:00 UTC 到指定时间的秒数)到当前时区的时间格式

语法:from_unixtime(bigint unixtime[, string format])

返回值:string

如图1-22所示,转换时间戳为当前时间。

📷 图1-22 from_unixtime函数的使用
SQL
select from_unixtime(1659946088);

current_date:当前日期

如图1-23所示,显示当前日期。

📷 图1-23 current_date函数的使用
SQL
select current_date;

current_timestamp:当前的日期加时间,并且精确的毫秒

如图1-24所示,显示当前日期加时间。

📷 图1-24 current_timestamp函数的使用
SQL
select current_timestamp;

5)month:获取日期中的月

语法:month (string date)

返回值:int

如图1-25所示,获取日期中的月份。

📷 图1-25 month函数的使用
SQL
select month('2022-08-08 08:08:08');

6)day:获取日期中的日

语法:day (string date)

返回值:int

如图1-26所示,显示日中的日。

📷 图1-26 day函数的使用
SQL
select day('2022-08-08 08:08:08')

7)hour:获取日期中的小时

语法:hour (string date)

返回值:int

如图1-27所示,显示日期中的小时。

📷 图1-27 hour函数的使用
SQL
select hour('2022-08-08 08:08:08');

8)datediff:两个日期相差的天数(结束日期减去开始日期的天数)

语法:datediff(string enddate, string startdate)

返回值:int

如图1-28所示,计算两个日期相差的天数。

📷 图1-28 datediff函数的使用
SQL
select datediff('2021-08-08','2022-10-09');

9)date_add:日期加天数

语法:date_add(string startdate, int days)

返回值:string

说明:返回开始日期 startdate 增加 days 天后的日期

如图1-29所示,返回'2022-08-08'后2天的日期。

📷 图1-29 date_add函数的使用
SQL
select date_add('2022-08-08',2);

10)date_sub:日期减天数

语法:date_sub (string startdate, int days)

返回值:string

说明:返回开始日期startdate减少days天后的日期。

如图1-30所示,'2022-08-08'减少两天的日期。

📷 图1-30 date_sub函数的使用
SQL
select date_sub('2022-08-08',2);

date_format:将标准日期解析成指定格式字符串

如图1-31所示,将日期格式化。

📷 图1-31 date_format函数的使用
SQL
select date_format('2022-08-08','yyyy年-MM月-dd日')

115流程控制函数

1)case when:条件判断函数

语法一:case when a then b [when c then d]* [else e] end

返回值:T

说明:如果a为true,则返回b;如果c为true,则返回d;否则返回 e

如图1-31所示,演示语法一的用法。

📷 图1-32 case when语法一的用法
SQL
select case when 1=2 then 'tom' when 2=2 then 'mary' else 'tim' end from temperature;

语法二: case a when b then c [when d then e]* [else f] end

返回值: T

说明:如果a等于b,那么返回c;如果a等于d,那么返回e;否则返回f

如图1-33所示,演示语法二的用法。

📷 图1-33 case when语法二的用法
SQL
select case 100 when 50 then 'tom' when 100 then 'mary' else 'tim' end from temperature;

2)if: 条件判断,类似于Java中三元运算符

语法:if(boolean testCondition, T valueTrue, T valueFalseOrNull)

返回值:T

说明:当条件testCondition为true时,返回valueTrue;否则返回valueFalseOrNull

(1)如图1-34所示,条件满足,输出正确

📷 图1-34 if条件判断(一)
SQL
select if(10 > 5,'正确','错误');

(2)如图1-35所示,条件满足,输出错误

📷 图1-35 if条件判断(二)
SQL
select if(10 < 5,'正确','错误);

116集合函数

1)size:集合中元素的个数

SQL
select size(friends) from test; --2/2 每一行数据中的friends集合里的个数

2)map:创建map集合

语法:map (key1, value1, key2, value2, …)

说明:根据输入的key和value对构建map类型

如图1-36所示,将输入的key和value对构建map类型。

📷 图1-36 map函数的用法
SQL
select map('xiaohai',1,'dahai',2);

map_keys: 返回map中的key

如图1-37所示,返回map中的key。

📷 图1-37 map_keys函数的用法
SQL
select map_keys(map('xiaohai',1,'dahai',2));

map_values: 返回map中的value

如图1-38所示,返回map中的value。

📷 图1-38 map_keys函数的用法
SQL
select map_values(map('xiaohai',1,'dahai',2));

5)array 声明array集合

语法:array(val1, val2, …)

说明:根据输入的参数构建数组array类

如图1-39所示,声明array集合。

📷 图1-39 array函数的用法
SQL
select array('1','2','3','4');

6)array_contains: 判断array中是否包含某个元素

如图1-40所示,判断array中是否包含某个元素。

📷 图1-40 array_contains函数的用法
SQL
select array_contains(array('a','b','c','d'),'a');

sort_array:将array中的元素排序

如图1-41所示,将array中的元素排序。

📷 图1-41 sort_array函数的用法
SQL
select sort_array(array('a','d','c'));

8)struct声明struct中的各属性

语法:struct(val1, val2, val3, …)

说明:根据输入的参数构建结构体struct类

如图1-42所示,声明struct中的各属性。

📷 图1-42 struct函数的用法
SQL
select struct('name','age','weight');

9)named_struct声明struct的属性和值

如图1-43所示,声明struct的属性和值。

📷 图1-43 named_struct函数的用法
SQL
select named_struct('name','xiaosong','age',18,'weight',80);

117聚合函数

1)语法

SQL
count(*),表示统计所有行数,包含null值;
count(某列),表示该列一共有多少行,不包含null值;
max(),求最大值,不包含null,除非所有值都是null;
min(),求最小值,不包含null,除非所有值都是null;
sum(),求和,不包含null。
avg(),求平均值,不包含null。

2)案例实操

(1)如图1-44所示,求总行数(count)

📷 图1-44 count函数的用法
SQL
select count(*) cnt from temperature;

(2)如图1-45所示,求温度的最大值(max)

📷 图1-45 max函数的用法
SQL
select max(temperature) max_tem from temperature;

(3)如图1-46所示,求温度的最小值(min)

📷 图1-46 min函数的用法
SQL
select min(temperature) min_tem from temperature;

(4)如图4-47所示,求温度的总和(sum)

📷 图1-47 sum函数的用法
SQL
select sum(temperature) sum_tem from temperature;

(5)如图1-48所示,求温度的平均值(avg)

📷 图1-48 sum函数的用法
SQL
select avg(temperature) avg_tem from temperature;

II

📄 展开原始文档全文(274 段)

函数的使用

11 函数的基本用法

以下命令可用于查询所有内置函数的相关信息。

查看系统内置函数

如图1-1所示,使用如下命令,查看系统内置函数。

show functions;

📷 图1-1 查看系统内置函数

查看内置函数用法

如图1-2所示,使用如下命令查看upper函数的用法。

desc function upper;

📷 图1-2 查看内置函数用法

查看内置函数详细信息

如图1-3所示,使用如下命令查看upper函数的详细信息。

desc function extended upper;

📷 图1-3 查看内置函数详细信息

12 内置函数

单行函数的特点是一进一出,即输入一行,输出一行。

单行函数按照功能可分为如下几类: 日期函数、字符串函数、集合函数、数学函数、流程控制函数等。

111 算术运算函数

运算符 描述 A+B A和B 相加 A-B A减去B A*B A和B 相乘 A/B A除以B A%B A对B取余 A&B A和B按位取与 A|B A和B按位取或 A^B A和B按位取异或 ~A A按位取反 案例实操:查询出所有员工的薪水后加1显示。

hive (default)> select sal + 1 from emp;

112 数值函数

1)round:四舍五入

如图1-4所示,显示3.3四舍五入后的值。

select round(3.3);

📷 图1-4 round函数的使用

ceil:向上取整

如图1-5所示,对3.1进行向上取整。

select ceil(3.1) ;

📷 图1-5 ceil函数的使用

floor:向下取整

如图1-6所示,对4.81进行向下取整。

select floor(4.8);

📷 图1-6 floor函数的使用

113 字符串函数

1)substring:截取字符串

语法一:substring(string A, int start)

返回值:string

说明:返回字符串A从start位置到结尾的字符串

语法二:substring(string A, int start, int len)

返回值:string

说明:返回字符串A从start位置开始,长度为len的字符串

案例实操:

(1)如图1-7所示,获取第二个字符以后的所有字符

select substring("hadoop",2);

📷 图1-7 使用substring函数获取第二个字符以后的所有字符

(2)如图1-8所示,获取倒数第三个字符以后的所有字符

select substring("hadoop",-3);

📷 图1-8 使用substring函数获取倒数第三个字符以后的所有字符

(3)如图1-9所示,从第3个字符开始,向后获取2个字符

select substring("hadoop",3,2);

📷 图1-9 使用substring函数获取从第3个字符开始,向后获取2个字符

2)replace :替换

语法:replace(string A, string B, string C)

返回值:string

说明:将字符串A中的子字符串B替换为C。

如图1-10所示,将hadoop中的a替换为A。

select replace('hadoop', 'a', 'A')

📷 图1-10 replace函数的使用

3)regexp_replace:正则替换

语法:regexp_replace(string A, string B, string C)

返回值:string

说明:将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符。

如图1-11所示,将‘100-200’中的整数替换为‘num’。

select regexp_replace('100-200', '(\\d+)', 'num') ;

📷 图1-11 regexp_replace函数的使用

4)regexp:正则匹配

语法:字符串 regexp 正则表达式

返回值:boolean

说明:若字符串符合正则表达式,则返回true,否则返回false。

(1)如图1-12所示,正则匹配成功,输出true

select 'dfsaaaa' regexp 'dfsa+'

📷 图1-12 regexp正则匹配成功,输出true

(2)如图1-13所示,正则匹配失败,输出false

select 'dfsaaaa' regexp 'dfsb+';

📷 图1-13 regexp正则匹配成功,输出false

5)repeat:重复字符串

语法:repeat(string A, int n)

返回值:string

说明:将字符串A重复n遍。

如图1-14所示,将‘123’重复3遍。

select repeat('123', 3);

📷 图1-14 repeat函数的使用

6)split :字符串切割

语法:split(string str, string pat)

返回值:array

说明:按照正则表达式pat匹配到的内容分割str,分割后的字符串,以数组的形式返回。

如图1-15所示,用‘-’分割'a-b-c-d'成一个数组。

select split('a-b-c-d','-');

📷 图1-15 split函数的使用

7)nvl :替换null值

语法:nvl(A,B)

说明:若A的值不为null,则返回A,否则返回B。

如图1-16所示,第一个值为null,返回1。

select nvl(null,1);

📷 图1-16 nvl函数的使用

8)concat :拼接字符串

语法:concat(string A, string B, string C, ……)

返回:string

说明:将A,B,C……等字符拼接为一个字符串

如图1-17所示,将5个字符串连接起来。

select concat('beijing','-','shanghai','-','shenzhen');

📷 图1-17 concat函数的使用

9)concat_ws:以指定分隔符拼接字符串或者字符串数组

语法:concat_ws(string A, string…| array(string))

返回值:string

说明:使用分隔符A拼接多个字符串,或者一个数组的所有元素。

如图1-18所示,使用‘-’,将后面三个字符串连接起来。

select concat_ws('-',array('beijing','shenzhen','shanghai'));

📷 图1-18 concat_ws函数的使用

10)get_json_object:解析json字符串

语法:get_json_object(string json_string, string path)

返回值:string

说明:解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL。

(1)如图1-19所示,获取json数组里面的json具体数据

hive> select get_json_object('[{"name":"大海海","sex":"男","age":"25"},{"name":"小宋宋","sex":"男","age":"47"}]','$.[0].name');

📷 图1-19 获取json数组里面的json具体数据

如图1-20所示,获取json数组里面的数据

select get_json_object('[{"name":"大海海","sex":"男","age":"25"},{"name":"小宋宋","sex":"男","age":"47"}]','$.[0]');

📷 图1-20 获取json数组里面的数据

114 日期函数

1)unix_timestamp:返回当前或指定时间的时间戳

语法:unix_timestamp()

返回值:bigint

如图1-21所示返回'2022/08/08 08-08-08'的时间戳。

select unix_timestamp('2022/08/08 08-08-08','yyyy/MM/dd HH-mm-ss');

📷 图1-21 unix_timestamp函数的使用

说明:-前面是日期后面是指,日期传进来的具体格式

2)from_unixtime:转化UNIX时间戳(从 1970-01-01 00:00:00 UTC 到指定时间的秒数)到当前时区的时间格式

语法:from_unixtime(bigint unixtime[, string format])

返回值:string

如图1-22所示,转换时间戳为当前时间。

select from_unixtime(1659946088);

📷 图1-22 from_unixtime函数的使用

current_date:当前日期

如图1-23所示,显示当前日期。

select current_date;

📷 图1-23 current_date函数的使用

current_timestamp:当前的日期加时间,并且精确的毫秒

如图1-24所示,显示当前日期加时间。

select current_timestamp;

📷 图1-24 current_timestamp函数的使用

5)month:获取日期中的月

语法:month (string date)

返回值:int

如图1-25所示,获取日期中的月份。

select month('2022-08-08 08:08:08');

📷 图1-25 month函数的使用

6)day:获取日期中的日

语法:day (string date)

返回值:int

如图1-26所示,显示日中的日。

select day('2022-08-08 08:08:08')

📷 图1-26 day函数的使用

7)hour:获取日期中的小时

语法:hour (string date)

返回值:int

如图1-27所示,显示日期中的小时。

select hour('2022-08-08 08:08:08');

📷 图1-27 hour函数的使用

8)datediff:两个日期相差的天数(结束日期减去开始日期的天数)

语法:datediff(string enddate, string startdate)

返回值:int

如图1-28所示,计算两个日期相差的天数。

select datediff('2021-08-08','2022-10-09');

📷 图1-28 datediff函数的使用

9)date_add:日期加天数

语法:date_add(string startdate, int days)

返回值:string

说明:返回开始日期 startdate 增加 days 天后的日期

如图1-29所示,返回'2022-08-08'后2天的日期。

select date_add('2022-08-08',2);

📷 图1-29 date_add函数的使用

10)date_sub:日期减天数

语法:date_sub (string startdate, int days)

返回值:string

说明:返回开始日期startdate减少days天后的日期。

如图1-30所示,'2022-08-08'减少两天的日期。

select date_sub('2022-08-08',2);

📷 图1-30 date_sub函数的使用

date_format:将标准日期解析成指定格式字符串

如图1-31所示,将日期格式化。

select date_format('2022-08-08','yyyy年-MM月-dd日')

📷 图1-31 date_format函数的使用

115 流程控制函数

1)case when:条件判断函数

语法一:case when a then b [when c then d]* [else e] end

返回值:T

说明:如果a为true,则返回b;如果c为true,则返回d;否则返回 e

如图1-31所示,演示语法一的用法。

select case when 1=2 then 'tom' when 2=2 then 'mary' else 'tim' end from temperature;

📷 图1-32 case when语法一的用法

语法二: case a when b then c [when d then e]* [else f] end

返回值: T

说明:如果a等于b,那么返回c;如果a等于d,那么返回e;否则返回f

如图1-33所示,演示语法二的用法。

select case 100 when 50 then 'tom' when 100 then 'mary' else 'tim' end from temperature;

📷 图1-33 case when语法二的用法

2)if: 条件判断,类似于Java中三元运算符

语法:if(boolean testCondition, T valueTrue, T valueFalseOrNull)

返回值:T

说明:当条件testCondition为true时,返回valueTrue;否则返回valueFalseOrNull

(1)如图1-34所示,条件满足,输出正确

select if(10 > 5,'正确','错误');

📷 图1-34 if条件判断(一)

(2)如图1-35所示,条件满足,输出错误

select if(10 < 5,'正确','错误);

📷 图1-35 if条件判断(二)

116 集合函数

1)size:集合中元素的个数

select size(friends) from test; --2/2 每一行数据中的friends集合里的个数

2)map:创建map集合

语法:map (key1, value1, key2, value2, …)

说明:根据输入的key和value对构建map类型

如图1-36所示,将输入的key和value对构建map类型。

select map('xiaohai',1,'dahai',2);

📷 图1-36 map函数的用法

map_keys: 返回map中的key

如图1-37所示,返回map中的key。

select map_keys(map('xiaohai',1,'dahai',2));

📷 图1-37 map_keys函数的用法

map_values: 返回map中的value

如图1-38所示,返回map中的value。

select map_values(map('xiaohai',1,'dahai',2));

📷 图1-38 map_keys函数的用法

5)array 声明array集合

语法:array(val1, val2, …)

说明:根据输入的参数构建数组array类

如图1-39所示,声明array集合。

select array('1','2','3','4');

📷 图1-39 array函数的用法

6)array_contains: 判断array中是否包含某个元素

如图1-40所示,判断array中是否包含某个元素。

select array_contains(array('a','b','c','d'),'a');

📷 图1-40 array_contains函数的用法

sort_array:将array中的元素排序

如图1-41所示,将array中的元素排序。

select sort_array(array('a','d','c'));

📷 图1-41 sort_array函数的用法

8)struct声明struct中的各属性

语法:struct(val1, val2, val3, …)

说明:根据输入的参数构建结构体struct类

如图1-42所示,声明struct中的各属性。

select struct('name','age','weight');

📷 图1-42 struct函数的用法

9)named_struct声明struct的属性和值

如图1-43所示,声明struct的属性和值。

select named_struct('name','xiaosong','age',18,'weight',80);

📷 图1-43 named_struct函数的用法

117 聚合函数

1)语法

count(*),表示统计所有行数,包含null值;

count(某列),表示该列一共有多少行,不包含null值;

max(),求最大值,不包含null,除非所有值都是null;

min(),求最小值,不包含null,除非所有值都是null;

sum(),求和,不包含null。

avg(),求平均值,不包含null。

2)案例实操

(1)如图1-44所示,求总行数(count)

select count(*) cnt from temperature;

📷 图1-44 count函数的用法

(2)如图1-45所示,求温度的最大值(max)

select max(temperature) max_tem from temperature;

📷 图1-45 max函数的用法

(3)如图1-46所示,求温度的最小值(min)

select min(temperature) min_tem from temperature;

📷 图1-46 min函数的用法

(4)如图4-47所示,求温度的总和(sum)

select sum(temperature) sum_tem from temperature;

📷 图1-47 sum函数的用法

(5)如图1-48所示,求温度的平均值(avg)

select avg(temperature) avg_tem from temperature;

📷 图1-48 sum函数的用法

II