MySQL中的集合函数(Aggregate Functions)用于对一组值执行计算,并返回单个值。这些函数通常用于SELECT
语句的SELECT
列表或HAVING
子句中。集合函数可以对行组进行操作,而不是单独的行。
GROUP BY
子句,可以对数据进行分组并计算每组的聚合值。常见的MySQL集合函数包括:
COUNT()
:计算行数或非空值的数量。SUM()
:计算数值列的总和。AVG()
:计算数值列的平均值。MIN()
:找出数值列或字符串列的最小值。MAX()
:找出数值列或字符串列的最大值。GROUP_CONCAT()
:将同一组内的多个值连接成一个字符串。COUNT()
函数时,为什么返回的结果是0?原因:
COUNT(column_name)
,而该列全部为NULL。解决方法:
COUNT(*)
来计算所有行数,而不是特定列的非空值数量。GROUP BY
子句时,为什么会收到“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column”错误?原因:
SELECT
列表中的某些列没有包含在GROUP BY
子句中,并且这些列也不是聚合函数的参数。解决方法:
SELECT
列表中的所有非聚合列添加到GROUP BY
子句中。MAX()
、MIN()
等)的参数。假设我们有一个名为orders
的表,包含以下列:order_id
、customer_id
、amount
和order_date
。
SELECT SUM(amount) AS total_amount FROM orders;
SELECT customer_id, SUM(amount) AS total_amount FROM orders GROUP BY customer_id;
SELECT MAX(amount) AS max_amount FROM orders;
领取专属 10元无门槛券
手把手带您无忧上云