1.聚集函数
PowerShell
聚集函数(aggregate function)
对某些行运行的函数,计算并返回一个值。
我们经常需要汇总数据而不用把它们实际检索出来,为此SQL提供了专门的函数。
使用这些函数,SQL查询可用于检索数据,以便分析和报表生成。
这种类型的检索例子有:
- 确定表中行书;
- 获得表中某些行的和;
- 找出表列的最大值、最小值、平均值。
为方便这种类型的检索,SQL给出了5个聚集函数
函数 | 说明 |
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回某列的最大值 |
MIN() | 返回某列的最小值 |
SUM() | 返回某列值之和 |
1.1AVG()函数
AVG()通过对表种行数计数其列值之和,求得该列的平均值。
AVG()可用来返回所有列的平均值,也可以用来返回特定列或行的平均值。
SQL
SELECT AVG(prod_price) AS avg_price
FROM Products
"SELECT AVG(`年份`)
AS 年份平均值
FROM blockbusters WHERE `年份` = 2018"
1.2COUNT()函数
COUNT()函数进行计数。
可利用COUNT()确定表中行的数目或符合特定条件的行的数目。
COUNT()函数有两种使用方式:
- 使用COUNT(*)对表中行的数目进行计数,不管表列种包含的是空值(NULL)还是非空值。
- 使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。
SQL
SELECT COUNT(*) AS num_cust
FROM Customers
"SELECT COUNT(*) AS num_table
FROM blockbusters"
"SELECT COUNT(`主流派`) AS num_table
FROM blockbusters"
1.3MAX()函数
MAX()返回指定列中的最大值。
MAX()要求指定列名
SQL
SELECT MAX(prod_price) AS max_price
FROM products
"SELECT MAX(`票房`) AS num_table
FROM blockbusters"
1.4 MIN()函数
MIN()的功能正好与MAX()功能相反,它返回指定列的最小值。
与MAX()一样,MIN()要求指定列名。
SQL
SELECT MIN(prod_price) AS min_price
FROM Products
"SELECT MIN(`年份`) AS num_table
FROM blockbusters"
1.5SUM()函数
SUM()用来返回指定列值的和(总计)。
SQL
SELECT SUM(quantity) AS items_ordered
FROM OrderItems
WHERE order_num = 20005;
"SELECT SUM(`年份`) AS 1975_票房
FROM blockbusters
WHERE `主流派` = 'Action'"
2.聚集不同值
聚集函数都可以如下使用。
- 对所有行执行计算,指定ALL参数或不指定参数。
- 只包含不同的值,指定DISTINCT参数。
SQL
SELECT AVG(DISTINCT prod_price) AS avg_price
FROM products
WHERE vend_id = 'DLL01';
"SELECT AVG(DISTINCT`年份`) AS 1975_票房
FROM blockbusters
WHERE `主流派` = 'Action'"
3.组合聚集函数
SQL
SELECT COUNT(*) AS num_items,
MIN(prod_price) AS price_min,
MAX(prod_price) AS price_max,
AVG(prod_price) AS price_avg
FROM Products