SQL sum(),count()和avg()函数
在本文中,我们将重点介绍一些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