SQL使用聚集函数实现对数据汇总
汇总数据
聚集函数
聚集函数:运行在行组上,计算和返回单个值的函数
SQL聚集函数:
函数 | 说明 |
---|---|
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回某列的最大值 |
MIN() | 返回某列的最小值 |
SUM() | 返回某列值之和 |
AVG函数
例:返回products表中所有产品的平均价格:
SELECT AVG(prod_price) AS avg_price
FROM products;
FROM products;
?AVG函数忽略列值为NULL的行
COUNT函数
确定表中行的数目或符合特定条件的行的数目。
例:返回customers表中客户的总数
SELECT COUNT(*) AS num_cust
FROM customers;
FROM customers;
例:只对具有电子邮件的客户计数
SELECT COUNT(cust_email) AS num_cust
FROM customers;
FROM customers;
MAX函数
SELECT MAX(prod_price) AS max_price
FROM products;
FROM products;
?用于文本数据时,如果数据按相应的列排序,则max返回最后一行。
?MAX函数忽略列值为NULL的行
MIN函数
MIN函数与MAX函数正好相反
SUM函数
sum用来返回指定列值的和
例:检索所订购的物品的总数。
SELECT SUM(quantity) AS items_ordered
FROM orderitems
WHERE order_num = 20005;
FROM orderitems
WHERE order_num = 20005;
SUM还可以与之前的计算字段进行联动
例:求总的订单金额
SELECT SUM(item_price*quantity) AS total_price
FROM orderitems
WHERE order_num = 20005;
FROM orderitems
WHERE order_num = 20005;
聚集不同值
⚠️下面介绍聚集函数的DISTINCT的使用,mysql4.x是不能正常使用的。
SELECT AVG(DISTINCT prod_price) AS avg_price
FROM products
WHERE vend_id = 1003;
FROM products
WHERE vend_id = 1003;
?DISTINCT不能用于COUNT(*)。
组合聚集函数
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;
MIN(prod_price) AS price_min,
MAX(prod_price) AS price_max,
AVG(prod_price) AS price_avg
FROM products;
到此这篇关于SQL使用聚集函数实现对数据汇总的文章就介绍到这了,更多相关SQL聚集函数内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!