兰溪自适应网站建设特点网上有哪些购物网站
2026/1/11 5:07:50 网站建设 项目流程
兰溪自适应网站建设特点,网上有哪些购物网站,h5免费模板网站,网页设计教程dt在 SQL 中#xff0c;聚合函数#xff08;Aggregate Function#xff09; 是对一组数据行#xff08;记录#xff09;进行计算并返回单一结果的函数#xff0c;核心作用是实现数据的统计、汇总分析。它通常与 GROUP BY 子句配合使用#xff08;分组聚合#xff09;聚合函数Aggregate Function是对一组数据行记录进行计算并返回单一结果的函数核心作用是实现数据的统计、汇总分析。它通常与GROUP BY子句配合使用分组聚合也可单独用于全表统计常见于报表、数据分析场景。一、常用聚合函数附示例以下以经典的score成绩表为例字段student_id 学生 ID、subject 科目、score 分数函数作用示例SQL示例结果COUNT()统计行数非 NULL 值的数量-- 统计总学生数去重COUNT(DISTINCT student_id)50假设 50 个学生SUM()计算数值列的总和-- 统计数学科目总分SUM (score) WHERE subject 数学4500假设AVG()计算数值列的平均值-- 计算数学科目平均分AVG (score) WHERE subject 数学90假设MAX()找出列中的最大值-- 数学科目最高分MAX (score) WHERE subject 数学100MIN()找出列中的最小值-- 数学科目最低分MIN (score) WHERE subject 数学60GROUP_CONCAT()MySQL 特有分组拼接字符串-- 拼接每个学生的科目GROUP_CONCAT(subject) GROUP BY student_id语文数学英语关键说明COUNT()的三种用法COUNT(*)统计所有行数包括 NULL 值COUNT(列名)统计该列非 NULL 值的行数COUNT(DISTINCT 列名)统计该列去重后的非 NULL 值行数。聚合函数会自动忽略NULL值比如某学生某科目分数为 NULLSUM/AVG不会计算该值。二、聚合函数的核心使用规则1. 单独使用全表聚合无需分组直接对整张表的目标列统计-- 统计成绩表总记录数 SELECT COUNT(*) AS total_records FROM score; -- 统计所有科目总分、平均分、最高分、最低分 SELECT SUM(score) AS total_score, AVG(score) AS avg_score, MAX(score) AS max_score, MIN(score) AS min_score FROM score;2. 与 GROUP BY 配合分组聚合按指定字段分组对每组数据分别聚合最常用场景-- 按科目分组统计每科的总分、平均分、参考人数 SELECT subject, SUM(score) AS total_score, AVG(score) AS avg_score, COUNT(student_id) AS student_count FROM score GROUP BY subject; -- 分组字段必须出现在SELECT中除聚合列外3. 与 HAVING 配合分组后过滤WHERE过滤分组前的行HAVING过滤分组后的聚合结果不能用 WHERE 过滤聚合函数结果-- 找出平均分≥80的科目 SELECT subject, AVG(score) AS avg_score FROM score GROUP BY subject HAVING avg_score 80; -- 过滤分组后的聚合结果4. 禁止与非聚合 / 非分组字段混用SELECT 子句中若包含聚合函数其他字段必须是GROUP BY的分组字段否则会报错不同数据库严格度不同如 MySQL 非严格模式可能返回随机值需避免-- 错误示例subject不是分组字段也不是聚合函数 SELECT subject, AVG(score) FROM score; -- 正确示例subject是分组字段 SELECT subject, AVG(score) FROM score GROUP BY subject;三、常见注意事项性能问题聚合函数需遍历数据行数据量极大时百万 / 千万级需给分组字段、过滤字段加索引优化NULL 值处理若需将 NULL 值计入计算比如 NULL 视为 0需用IFNULL()或COALESCE()转换-- 把NULL分数视为0计算平均分 SELECT AVG(IFNULL(score, 0)) FROM score;嵌套聚合支持聚合函数嵌套需用子查询比如 “统计各科目平均分的最大值”SELECT MAX(avg_score) FROM (SELECT AVG(score) AS avg_score FROM score GROUP BY subject) AS sub;四、扩展其他数据库特有聚合函数PostgreSQLSTRING_AGG(列名, 分隔符)类似 MySQL 的 GROUP_CONCAT、PERCENTILE_CONT()分位数计算SQL ServerSTRING_AGG(列名, 分隔符)、COUNT_BIG()统计大数行数返回 bigint 类型OracleLISTAGG(列名, 分隔符) WITHIN GROUP (ORDER BY 列名)分组拼接、AVG()支持空值处理。核心总结聚合函数是 SQL 数据统计的核心工具核心逻辑是 “对一组数据做汇总计算”搭配GROUP BY/HAVING可实现精细化的分组统计是数据分析、报表生成的基础。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询