因为被照亮过,所以也想变成光。
聚合函数
1. SQL聚合函数
函数 | 说明 |
---|---|
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回某列的最大值 |
MIN() | 返回某列的最小值 |
SUM() | 返回某列值之和 |
2. AVG()
2.1 代码演示:返回Products表中所有产品的平均价格
SELECT AVG(prod_price) AS avg_price
FROM products;
运行结果:
2.2 说明
(1)AVG()也可以结合WHERE子句,指定特定的产品求平均值,如:
代码演示:
SELECT AVG(prod_price) AS avg_price
FROM products
WHERE vend_id = 'DLL01';
运行结果:
即:返回Products表中供应商为 ‘DLL01’ 的产品的价格的平均值
3. COUNT()
3.1 代码演示:返回Customers表中顾客的总数
SELECT COUNT(*) AS num_cust
FROM Customers;
运行结果:
3.2 代码演示:只对有电子邮件地址的客户计数
SELECT COUNT(cust_email) AS num_cust
FROM Customers;
运行结果:
4. MAX()
4.1 代码演示:返回prod_price列中的最大值
SELECT MAX(prod_price) AS max_price
FROM Products;
运行结果:
5. MIN()
5.1 代码演示:返回Products表中最便宜物品的价格
SELECT MIN(prod_price) AS max_price
FROM Products;
运行结果:
6. SUM()
6.1 代码演示:检索所订购物品的总数
SELECT SUM(quantity) AS item_orderd
FROM orderitems
WHERE order_num = 20005;
运行结果:
6.2 代码演示:计算订单号为20005的总订单金额
SELECT SUM(item_price*quantity) AS total_price
FROM orderitems
WHERE order_num = 20005;
运行结果:
7. 聚集不同值
7.1 代码演示:返回特定供应商提供的产品的平均价格
SELECT AVG(DISTINCT prod_price) AS avg_price
FROM products
WHERE vend_id = 'DLL01';
运行结果:
7.2 说明:
(1) DISTINCT不能用于COUNT(*)
(2)DISTINCT可以用于MIN()和MAX(),但是结果上来说都是相同的,并没有什么实际意义。
8.组合聚集函数
8.1 代码演示
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;
运行结果
8.2 说明
(1)4个语句分别执行了4个不同的聚集计算,返回了4个对应的结果,并无冲突
总结
以上就是聚合函数部分的全部内容,这部分内容理解起来不是很难,就是使用平均值、最大值、最小值、求和、计数几个数字特征的使用,但是这部分却是工作中会比较常用的统计方法,所以还是需要多加练习,熟练掌握。