mysql中有5种常用的聚合函数:sum()、avg()、max()、min()、count()
AVG():通过计算分组内指定字段值的和,以及分组内的记录数,算出分组内指定字段的平均值。
SUM():可以返回指定字段值的和。求和函数获取的是分组中的合计数据。如果涉及到多个字段分组,一定要知道字段之间有什么样的层次关系。
LEFT(str,n): 表示返回字符串str最左边的n个字符。
mysql> SELECT
-> LEFT(b.transdate, 10), -- 从关联表获取交易时间,并且通过LEFT函数,获取交易时间字符串的左边10个字符,得到年月日的数据。
-> c.goodsname, -- 从关联表获取商品名称
-> SUM(a.quantity), -- 数量求和
-> SUM(a.salesvalue) -- 金额求和
-> FROM
-> demo.transactiondetails a
-> JOIN
-> demo.transactionhead b ON (a.transactionid = b.transactionid)
-> JOIN
-> demo.goodsmaster c ON (a.itemnumber = c.itemnumber)
-> GROUP BY LEFT(b.transdate, 10) , c.goodsname -- 分组
-> ORDER BY LEFT(b.transdate, 10) , c.goodsname; -- 排序
+-----------------------+-----------+-----------------+-------------------+
| LEFT(b.transdate, 10) | goodsname | SUM(a.quantity) | SUM(a.salesvalue) |
+-----------------------+-----------+-----------------+-------------------+
| 2020-12-01 | 书 | 2.000 | 178.00 |
| 2020-12-01 | 笔 | 5.000 | 25.00 |
| 2020-12-02 | 书 | 4.000 | 356.00 |
| 2020-12-02 | 笔 | 16.000 | 80.00 |
+-----------------------+-----------+-----------------+-------------------+
4 rows in set (0.01 sec)
AVG()函数:通过计算分组内指定字段值的和,以及分组内的记录数,算出分组内指定字段的平均值。
MAX()函数:表示获取指定字段在分组中的最大值。
MIN()函数:表示获取指定字段在分组中的最小值。
COUNT()函数:了解数据集的大小。
网友评论