有许多数据库管理系统被用来管理网站或应用程序的数据,如MySQL和SQLite。像其他RDMS一样,SQLite包含许多内置函数,使数据库的管理更加容易,比如聚合函数。在这篇文章中,我们将通过在一些例子中实现这些函数来了解SQLite中的聚合函数。
什么是聚合函数
聚合函数,对多条记录执行一些特定的任务,并返回一个单一的值作为特定任务的结果。表中给出了在SQLite中使用的聚合函数及其用法说明。
| 聚合函数 | 说明 |
|---|---|
| MIN() | 用于提取指定列中插入的最大数值。 |
| MAX() | 用于提取插入到指定列中的最小值。 |
| AVG() | 用于提取在指定列中插入的所有值的平均值。 |
| COUNT() | 用于计算指定列的行的总条目数 |
| SUM() | 用于找出指定列中所有数值的总和 |
| UPPER() | 用于将所有字符串值转换为指定列的大写字母 |
| LOWER() | 用于将所有的字符串值转换为指定列的小写字母。 |
| LENGTH() | 用于查找指定字符串中的字符或字母的数量。 |
| ABS() | 它将返回指定列的绝对值。 |
在SQLite中创建一个表
为了了解SQLite中聚合的所有函数的使用,我们将使用命令创建一个表。
CREATE TABLE budget (id INTEGER, month TEXT, conveyance REAL, utility_bills REAL, rent REAL, savings REAL );

创建完成后,我们将插入数据。
INSERT INTO budget VALUES (1,’January’,3500,3200,40000,2000),(2,’February’,4535,6700,40000,-3000),(3,’March’,1089,13465,40000,-2000),(4,’April’,9500,8132,40000,-1000);

为了显示该表,我们使用的命令如下。
SELECT * FROM budget;

使用聚合MIN()函数
最小函数将被用来找出插入列中的最小值,让我们考虑一下表,budget,我们想从中找出列utility_bills的最小值,使用命令。
SELECT MIN(utility_bills) FROM budget;

使用聚合MAX()函数
最大函数将用于找出插入列中的最小值,我们可以使用以下命令从预算表的utility_bills列中找出最大值。
SELECT MAX(utility_bills) FROM budget;

使用集合AVG()函数
如果我们必须找出插入某列的所有数值的平均值,我们将使用平均函数,例如我们可以使用函数AVG()找出列的平均值,即 conveyance。
SELECT AVG(conveyance) FROM budget;

使用集合COUNT()函数
我们可以使用函数COUNT()来找出列id的总行数,具体方法如下。
SELECT COUNT(id) FROM budget;

使用聚合SUM()函数
我们可以通过使用函数SUM()来找出列 "租金 "的所有数值相加的结果。
SELECT SUM(rent) FROM budget;

使用聚合UPPER()函数
我们可以使用函数UPPER()将列 "月 "的字符串转换成大写字母。
SELECT UPPER(month) FROM budget;

使用聚合LOWER()函数
同样地,我们可以使用函数LOWER()将月这一列的字符串转换为小写字母,如
SELECT LOWER(month) FROM budget;

使用聚合LENGTH()函数
我们可以使用函数LENGTH()来计算列Month的字符串中所使用的字母或字符的数量,具体方法如下。
SELECT month, LENGTH(month) FROM budget;

使用聚合SUM()函数
为了将列的所有值相加并找出其结果,为此我们可以使用sum聚合函数,让我们考虑使用sum函数对表的列,即预算的储蓄进行计算。
SELECT SUM(savings) FROM budget;

使用聚合ABS()函数
有时我们的结果带有负号,我们希望得到绝对形式的结果,那么我们就使用聚合ABS(),现在,为了找出一列储蓄之和的绝对值,我们将使用ABS()函数。
SELECT ABS(SUM(savings)) FROM budget;

结论
聚合函数可以应用于数据库表中的行,并可以返回指定的结果,此外,这些函数还可以用来对数据库条目进行计算。在这篇文章中,我们讨论了不同的聚合函数,这些函数在SQLite中通常用于不同的目的,如找出列的最大值,列的最小值,以及计算字符串的字符数。我们还解释了SQLite中每个聚合函数的例子,以便更好地理解。