- 聚合函数
- 功能理解
- 聚合函数是对一组数据进行计算并返回一个单一的值。例如,
COUNT(*)
用于计算表中的行数,SUM(column_name)
用于计算指定列中所有值的总和,AVG(column_name)
用于计算指定列的平均值等。 - 常见的聚合函数包括
COUNT
、SUM
、AVG
、MAX
、MIN
。比如,在一个销售订单表orders
中,SUM(order_amount)
可以计算所有订单金额的总和,MAX(order_date)
可以找到最新的订单日期。
- 聚合函数是对一组数据进行计算并返回一个单一的值。例如,
- 使用注意事项
- 聚合函数通常是在查询中对一组数据进行操作,所以它们经常与
GROUP BY
或HAVING
子句一起使用,以对分组后的数据进行聚合计算。如果在没有分组的情况下使用聚合函数,它将对整个表(或满足WHERE
条件的行)进行计算。例如,SELECT COUNT(*) FROM customers;
会返回customers
表中的总行数。 - 除了
COUNT(*)
外,其他聚合函数(如SUM
、AVG
等)在计算时会忽略列中的NULL
值。例如,在一个成绩表中,如果有一个学生的成绩列为NULL
,那么在计算AVG(score)
时,这个NULL
值会被忽略。 - 当使用多个聚合函数时,要注意它们的计算顺序和逻辑。例如,在计算
AVG(SUM(order_amount))
这种复杂的表达式时,需要先理解先执行SUM
函数对每个分组(如果有分组)进行求和,然后再对这些求和结果求平均值。这种复杂的嵌套聚合函数使用场景相对较少,但在一些复杂的数据分析中可能会用到。
- 聚合函数通常是在查询中对一组数据进行操作,所以它们经常与
- 功能理解
- GROUP BY
- 功能理解
GROUP BY
子句用于将查询结果按照一个或多个列进行分组。例如,在一个员工表employees
中,如果按照部门(department
列)进行分组,那么所有属于同一个部门的员工记录会被归为一组。- 它通常与聚合函数一起使用,用于对每个分组进行聚合计算。比如,
SELECT department, COUNT(*) FROM employees GROUP BY department;
会按照部门对员工进行分组,并计算每个部门的员工人数。
- 使用注意事项
- 在
SELECT
子句中,除了聚合函数外,其他列必须出现在GROUP BY
子句中。例如,SELECT department, name, COUNT(*) FROM employees GROUP BY department;
是错误的,因为name
列没有在GROUP BY
子句中出现。正确的写法可能是只选择department
列和聚合函数,如SELECT department, COUNT(*) FROM employees GROUP BY department;
或者将name
列也添加到GROUP BY
子句中,如SELECT department, name, COUNT(*) FROM employees GROUP BY department, name;
。 - 分组的顺序会影响结果。如果按照多个列进行分组,如
GROUP BY column1, column2
,那么先按照column1
进行分组,然后在每个column1
分组内再按照column2
进行分组。例如,在一个销售数据表中,按照region
(地区)和product_type
(产品类型)进行分组,会先将数据按照地区分组,然后在每个地区分组内再按照产品类型分组。 GROUP BY
子句可以和HAVING
子句一起使用。HAVING
子句用于对分组后的结果进行筛选,类似于WHERE
子句对整个表的筛选,但WHERE
子句不能用于筛选聚合函数的结果,而HAVING
可以。例如,SELECT department, COUNT(*) AS employee_count FROM employees GROUP BY department HAVING employee_count > 10;
会筛选出员工人数大于 10 的部门。
- 在
- 功能理解
聚合函数与group by
猜你喜欢
转载自blog.csdn.net/qq_41924536/article/details/144117305
今日推荐
周排行