SQL sum(),count()和avg()函数

时间:2020-02-23 14:32:35  来源:igfitidea点击:

在本文中,我们将重点介绍一些SQL广泛使用的聚合函数-sum(),count()和avg()函数。

SQL sum()函数

" SQL sum()函数"对各个表的特定列的所有值进行求和,并返回获得的值作为其求和。

语法:

SELECT SUM(column) 
FROM Table
WHERE condition;

在以上语法中," WHERE子句"用于对它前面提供的条件进行操作。

范例1:

create table Info(id integer, Cost integer);
insert into Info(id, Cost) values(1, 100);
insert into Info(id, Cost) values(2, 50);
insert into Info(id, Cost) values(3, 65);
insert into Info(id, Cost) values(4, 97);
insert into Info(id, Cost) values(5, 12);
SELECT SUM(Cost)
FROM Info;

在上面的示例中,我们创建了一个包含" id"和" Cost"列的" Info"表。
此外,我们使用SQL sum()函数来描述"费用"列中存在的所有数据值的总和。

输出:

324

范例2:

create table Info(id integer, Cost integer);
insert into Info(id, Cost) values(1, 100);
insert into Info(id, Cost) values(2, 50);
insert into Info(id, Cost) values(3, 65.45);
insert into Info(id, Cost) values(4, 97);
insert into Info(id, Cost) values(5, 12);
SELECT SUM(Cost)
FROM Info
WHERE Cost>20;

在此示例中,SQL WHERE子句仅用于选择"成本"列中的值大于20的那些数据值。
这些选定的数据值将传递给SQL sum()函数以求和。

输出:

312

带有GROUP BY子句的SQL sum()函数

SQL GROUP BY子句与SELECT语句一起使用,可以将相同的数据值与某些特定的组值进行分组。

SQL GROUP BY子句的语法:

SELECT * from Table
GROUP BY Column;

例:

create table Info(id integer, Cost integer, city varchar(200));
insert into Info(id, Cost,city) values(1, 100,"Pune");
insert into Info(id, Cost,city) values(2, 50, "Satara");
insert into Info(id, Cost,city) values(3, 65,"Pune");
insert into Info(id, Cost,city) values(4, 97,"Mumbai");
insert into Info(id, Cost,city) values(5, 12,"USA");

SELECT city, SUM(Cost)
FROM Info
GROUP BY city;

在此示例中,GROUP BY子句用于按组对"城市"列的相同数据值进行分组。

此外,这些数据值集将传递给SQL sum()函数,并分别执行这些组的元素求和。

输出:

Mumbai	97
Pune	165
Satara	50
USA	12

SQL count()函数

SQL count()函数对传递给它的特定列中存在的数据值总数进行计数。

语法:

SELECT COUNT(column) 
FROM Table
WHERE condition;

范例1:

create table Info(id integer, Cost integer, city varchar(200));
insert into Info(id, Cost,city) values(1, 100,"Pune");
insert into Info(id, Cost,city) values(2, 50, "Satara");
insert into Info(id, Cost,city) values(3, 65,"Pune");
insert into Info(id, Cost,city) values(4, 97,"Mumbai");
insert into Info(id, Cost,city) values(5, 12,"USA");

SELECT count(id)
FROM Info;

在上面的示例中,我们使用SQL count()函数显示了" id"列中存在的数据值计数。

输出:

5

范例2:

SELECT count(id)
FROM Info
WHERE city = "Pune";

考虑示例1的表,我们在WHERE子句旁边使用了SQL count()函数来仅对那些恰好属于"浦那"城市的数据值进行计数。

输出:

2

带有GROUP BY子句的SQL count()函数

可以将SQL count()函数与GROUP BY子句结合使用,以获取针对特定数据组的数据值计数。

例:

create table Info(id integer, Cost integer, city varchar(200));
insert into Info(id, Cost,city) values(1, 100,"Pune");
insert into Info(id, Cost,city) values(2, 50, "Satara");
insert into Info(id, Cost,city) values(3, 65,"Pune");
insert into Info(id, Cost,city) values(4, 97,"Mumbai");
insert into Info(id, Cost,city) values(5, 12,"USA");

SELECT city,count(id)
FROM Info
GROUP BY city;

在上面的示例中,我们使用SQL GROUP BY子句按"城市"列对数据值进行分组。
之后,我们使用了SQL count()函数来计算与所形成的特定组关联的数据值的数量。

输出:

Mumbai	1
Pune	2
Satara	1
USA	1

SQL avg()函数

SQL avg()函数估计传递给它的特定列的数据值的平均值。

语法:

SELECT AVG(column) 
FROM Table
WHERE condition;

范例1:

SELECT avg(Cost)
FROM Info;

参照上一节中创建的表,我们使用了SQL avg()函数来计算"费用"列的数据值的平均值。

输出:

64.8000

范例2:

SELECT avg(Cost)
FROM Info
WHERE city = "Pune";

在此示例中,我们计算了属于城市"浦那"的数据元素的平均值。

输出:

82.5000

带GROUP BY子句的SQL avg()函数

SQL avg()函数与GROUP BY子句一起用于针对各个数据组计算数据值的平均值。

例:

create table Info(id integer, Cost integer, city varchar(200));
insert into Info(id, Cost,city) values(1, 100,"Pune");
insert into Info(id, Cost,city) values(2, 50, "Satara");
insert into Info(id, Cost,city) values(3, 65,"Pune");
insert into Info(id, Cost,city) values(4, 97,"Mumbai");
insert into Info(id, Cost,city) values(5, 12,"USA");

SELECT city,avg(Cost)
FROM Info
GROUP BY city;

我们已将数据值沿"城市"列分组,然后计算了属于同一城市的数据的平均值。

输出:

Mumbai	97.0000
Pune	82.5000
Satara	50.0000
USA	12.0000