赞
踩
GROUP BY
语句在 SQL 中用于将来自数据库表的记录分组,以便可以对每个组执行聚合函数(如 COUNT()
, MAX()
, MIN()
, SUM()
, AVG()
等)。使用 GROUP BY
时,数据库会根据一个或多个列的值将结果集分为多个分组,在每个分组内可以独立地使用聚合函数。GROUP BY
通常与 SELECT
语句一起使用,以汇总每个分组的数据。
SELECT column_name(s), AGGREGATE_FUNCTION(column_name)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
这个 SQL 模板展示了一个结构化查询语言(SQL)的基本结构,用于从数据库中选择、汇总、分组和排序数据。下面逐步解释每个部分的功能和作用:
sql SELECT column_name(s), AGGREGATE_FUNCTION(column_name)
SELECT
关键字用于指定要从数据库表中检索的列或字段。 column_name(s)
是你想从选定表中选择的列的名称。你可以选择一个列、多个列或所有列(使用 *)。
AGGREGATE_FUNCTION(column_name)
是应用于某列的聚合函数。聚合函数对数据进行数学运算,如计算平均值(AVG
)、总和(SUM
)、最大值(MAX
)、最小值(MIN
)或计数(COUNT
)。
sql FROM table_name
FROM
关键字后面跟着的是表名,指示 SQL 从哪个表中检索数据。
WHERE condition
WHERE
子句是可选的,用于指定筛选条件,以限制哪些行应该被包括在你的结果集中。只有满足指定条件的行才会被选中参与后续的 GROUP BY
或聚合操作。
GROUP BY column_name(s)
GROUP BY
关键字后面跟着的列名用于指定数据库应该如何将数据分组。在使用聚合函数时,GROUP BY
使你能够将行分组成小的数据块,并对每个组分别计算聚合函数。如果有多个列,数据库将根据这些列的组合值进行分组。
ORDER BY column_name(s)
ORDER BY
关键字用于指定结果集的排序方式。你可以根据一个或多个列进行排序。默认情况下,ORDER BY
会按照升序(ASC
)排列数据,但你也可以指定降序(DESC
)。
GROUP BY
语句后面跟的是一个或多个列,数据库根据这些列的值将数据分组。同一组内的行在所有指定的列上都有相同的值。示例1
假设有一个 orders 表,其中包含 order_date 和 amount 列。如果我们想知道每个日期的总销售额,可以这样写:
SELECT order_date, SUM(amount)
FROM orders
GROUP BY order_date;
这个查询会根据 order_date 列的值将 orders 表中的记录分组,并计算每个日期的总销售额。
示例2
假设有一个名为 employees 的表,它有 department 和 salary 两列。如果你想知道每个部门的平均薪资,并按部门名排序,你的 SQL 语句可能如下:
SELECT department, AVG(salary)
FROM employees
WHERE salary > 0
GROUP BY department
ORDER BY department;
这个查询将:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。