第10周 · 函数的使用
常用内置函数、窗口函数、自定义函数
本实训对应的知识点
- 单元6 6.1 使用常用内置函数 · Hive函数应用
- 单元6 6.1.1 聚合函数 · Hive函数应用
- 单元6 6.1.2 数学函数 · Hive函数应用
- 单元6 6.1.3 集合函数 · Hive函数应用
- 单元6 6.1.4 类型转换函数 · Hive函数应用
- 单元6 6.1.5 日期函数 · Hive函数应用
- 单元6 6.1.6 条件函数 · Hive函数应用
- 单元6 6.1.7 字符串函数 · Hive函数应用
- 单元6 6.1.8 表生成函数 · Hive函数应用
- 单元6 6.2 使用窗口函数 · Hive函数应用
- 单元6 6.3 开发自定义函数 · Hive函数应用
- 单元6 6.3.1 准备开发环境 · Hive函数应用
- 单元6 6.3.2 开发UDF · Hive函数应用
- 单元6 6.3.3 开发UDAF · Hive函数应用
- 单元6 6.3.4 开发UDTF · Hive函数应用
- 单元6 6.3.5 注册自定义函数 · Hive函数应用
实训内容与步骤 依据原始实训文档整理,命令与配置均来自文档原文
11函数的基本用法
以下命令可用于查询所有内置函数的相关信息。
查看系统内置函数
如图1-1所示,使用如下命令,查看系统内置函数。
📷 图1-1 查看系统内置函数show functions;查看内置函数用法
如图1-2所示,使用如下命令查看upper函数的用法。
📷 图1-2 查看内置函数用法desc function upper;查看内置函数详细信息
如图1-3所示,使用如下命令查看upper函数的详细信息。
📷 图1-3 查看内置函数详细信息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显示。
hive (default)> select sal + 1 from emp;112数值函数
1)round:四舍五入
如图1-4所示,显示3.3四舍五入后的值。
📷 图1-4 round函数的使用select round(3.3);ceil:向上取整
如图1-5所示,对3.1进行向上取整。
📷 图1-5 ceil函数的使用select ceil(3.1) ;floor:向下取整
如图1-6所示,对4.81进行向下取整。
📷 图1-6 floor函数的使用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函数获取第二个字符以后的所有字符select substring("hadoop",2);(2)如图1-8所示,获取倒数第三个字符以后的所有字符
📷 图1-8 使用substring函数获取倒数第三个字符以后的所有字符select substring("hadoop",-3);(3)如图1-9所示,从第3个字符开始,向后获取2个字符
📷 图1-9 使用substring函数获取从第3个字符开始,向后获取2个字符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函数的使用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函数的使用select regexp_replace('100-200', '(\\d+)', 'num') ;4)regexp:正则匹配
语法:字符串 regexp 正则表达式
返回值:boolean
说明:若字符串符合正则表达式,则返回true,否则返回false。
(1)如图1-12所示,正则匹配成功,输出true
📷 图1-12 regexp正则匹配成功,输出trueselect 'dfsaaaa' regexp 'dfsa+'(2)如图1-13所示,正则匹配失败,输出false
📷 图1-13 regexp正则匹配成功,输出falseselect 'dfsaaaa' regexp 'dfsb+';5)repeat:重复字符串
语法:repeat(string A, int n)
返回值:string
说明:将字符串A重复n遍。
如图1-14所示,将‘123’重复3遍。
📷 图1-14 repeat函数的使用select repeat('123', 3);6)split :字符串切割
语法:split(string str, string pat)
返回值:array
说明:按照正则表达式pat匹配到的内容分割str,分割后的字符串,以数组的形式返回。
如图1-15所示,用‘-’分割'a-b-c-d'成一个数组。
📷 图1-15 split函数的使用select split('a-b-c-d','-');7)nvl :替换null值
语法:nvl(A,B)
说明:若A的值不为null,则返回A,否则返回B。
如图1-16所示,第一个值为null,返回1。
📷 图1-16 nvl函数的使用select nvl(null,1);8)concat :拼接字符串
语法:concat(string A, string B, string C, ……)
返回:string
说明:将A,B,C……等字符拼接为一个字符串
如图1-17所示,将5个字符串连接起来。
📷 图1-17 concat函数的使用select concat('beijing','-','shanghai','-','shenzhen');9)concat_ws:以指定分隔符拼接字符串或者字符串数组
语法:concat_ws(string A, string…| array(string))
返回值:string
说明:使用分隔符A拼接多个字符串,或者一个数组的所有元素。
如图1-18所示,使用‘-’,将后面三个字符串连接起来。
📷 图1-18 concat_ws函数的使用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具体数据hive> select get_json_object('[{"name":"大海海","sex":"男","age":"25"},{"name":"小宋宋","sex":"男","age":"47"}]','$.[0].name');如图1-20所示,获取json数组里面的数据
📷 图1-20 获取json数组里面的数据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函数的使用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函数的使用select from_unixtime(1659946088);current_date:当前日期
如图1-23所示,显示当前日期。
📷 图1-23 current_date函数的使用select current_date;current_timestamp:当前的日期加时间,并且精确的毫秒
如图1-24所示,显示当前日期加时间。
📷 图1-24 current_timestamp函数的使用select current_timestamp;5)month:获取日期中的月
语法:month (string date)
返回值:int
如图1-25所示,获取日期中的月份。
📷 图1-25 month函数的使用select month('2022-08-08 08:08:08');6)day:获取日期中的日
语法:day (string date)
返回值:int
如图1-26所示,显示日中的日。
📷 图1-26 day函数的使用select day('2022-08-08 08:08:08')7)hour:获取日期中的小时
语法:hour (string date)
返回值:int
如图1-27所示,显示日期中的小时。
📷 图1-27 hour函数的使用select hour('2022-08-08 08:08:08');8)datediff:两个日期相差的天数(结束日期减去开始日期的天数)
语法:datediff(string enddate, string startdate)
返回值:int
如图1-28所示,计算两个日期相差的天数。
📷 图1-28 datediff函数的使用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函数的使用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函数的使用select date_sub('2022-08-08',2);date_format:将标准日期解析成指定格式字符串
如图1-31所示,将日期格式化。
📷 图1-31 date_format函数的使用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语法一的用法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语法二的用法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条件判断(一)select if(10 > 5,'正确','错误');(2)如图1-35所示,条件满足,输出错误
📷 图1-35 if条件判断(二)select if(10 < 5,'正确','错误);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类型。
📷 图1-36 map函数的用法select map('xiaohai',1,'dahai',2);map_keys: 返回map中的key
如图1-37所示,返回map中的key。
📷 图1-37 map_keys函数的用法select map_keys(map('xiaohai',1,'dahai',2));map_values: 返回map中的value
如图1-38所示,返回map中的value。
📷 图1-38 map_keys函数的用法select map_values(map('xiaohai',1,'dahai',2));5)array 声明array集合
语法:array(val1, val2, …)
说明:根据输入的参数构建数组array类
如图1-39所示,声明array集合。
📷 图1-39 array函数的用法select array('1','2','3','4');6)array_contains: 判断array中是否包含某个元素
如图1-40所示,判断array中是否包含某个元素。
📷 图1-40 array_contains函数的用法select array_contains(array('a','b','c','d'),'a');sort_array:将array中的元素排序
如图1-41所示,将array中的元素排序。
📷 图1-41 sort_array函数的用法select sort_array(array('a','d','c'));8)struct声明struct中的各属性
语法:struct(val1, val2, val3, …)
说明:根据输入的参数构建结构体struct类
如图1-42所示,声明struct中的各属性。
📷 图1-42 struct函数的用法select struct('name','age','weight');9)named_struct声明struct的属性和值
如图1-43所示,声明struct的属性和值。
📷 图1-43 named_struct函数的用法select named_struct('name','xiaosong','age',18,'weight',80);117聚合函数
1)语法
count(*),表示统计所有行数,包含null值;
count(某列),表示该列一共有多少行,不包含null值;
max(),求最大值,不包含null,除非所有值都是null;
min(),求最小值,不包含null,除非所有值都是null;
sum(),求和,不包含null。
avg(),求平均值,不包含null。2)案例实操
(1)如图1-44所示,求总行数(count)
📷 图1-44 count函数的用法select count(*) cnt from temperature;(2)如图1-45所示,求温度的最大值(max)
📷 图1-45 max函数的用法select max(temperature) max_tem from temperature;(3)如图1-46所示,求温度的最小值(min)
📷 图1-46 min函数的用法select min(temperature) min_tem from temperature;(4)如图4-47所示,求温度的总和(sum)
📷 图1-47 sum函数的用法select sum(temperature) sum_tem from temperature;(5)如图1-48所示,求温度的平均值(avg)
📷 图1-48 sum函数的用法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