sql中常用的聚合函数有哪些

SQL里头的聚合函数确实挺实用的,就是把好几个值给合并一下,最后只返回一个结果。
我给你捋捋常用的这些,分分类说清楚:
一、基础聚合函数 这些是最常用的,基本上每个SQL操作都会遇到:
SUM():加和,空值不管。
比如查工资总和:SELECT SUM(salary) FROM employees;
AVG():算平均,空值也不算。
比如查平均分:SELECT AVG(score) FROM students;
MIN():找最小值,数字、字符串、日期都行。
比如找最低价:SELECT MIN(price) FROM products;
MAX():找最大值,同样支持各种类型。
比如找最晚入职日期:SELECT MAX(hire_date) FROM employees;
COUNT():数行数,有讲究:
COUNT():不管空值,全数。

COUNT(column_name):只数非空的。

二、高级聚合函数 这些稍微进阶点:
COUNT(DISTINCT):去重计数。
比如统计不同部门的人数:SELECT COUNT(DISTINCT department) FROM employees;
GROUP_CONCAT()(MySQL)或 STRING_AGG()(SQL Server/PostgreSQL):合并字符串。
得配合GROUP BY用,比如把同部门人名拼成列表: sql SELECT GROUP_CONCAT(name SEPARATOR ', ') FROM users GROUP BY department;
三、位运算与比较函数 这些比较特殊:
BIT_AND() / BIT_OR():对整数做位运算,返回所有值的按位与或结果。
比如查系统设置的标志位:SELECT BIT_AND(flags) FROM settings;
GREATEST() / LEAST():找最大/最小,可以多列比。
比如比三列价格的最大值:SELECT GREATEST(price1 , price2 , price3 ) FROM products;
四、窗口函数中的聚合(扩展) 部分数据库(比如Oracle)支持在窗口函数里直接用 TOTAL() 和 AVERAGE(),但标准SQL更推荐用 SUM() OVER() 或 AVG() OVER()。
比如按部门分组算平均工资: sql SELECT AVG(salary) OVER (PARTITION BY department) FROM employees;
注意事项
空值处理:大部分聚合函数(SUM、AVG等)都不管空值,但 COUNT() 会全数。

性能优化:大表用聚合函数时,最好配点索引或者先用 WHERE 子句过滤一下。

数据库差异:像 BIT_AND()、GROUP_CONCAT() 这些,不同数据库(MySQL、PostgreSQL、SQL Server)的写法可能不一样。

示例汇总
基础聚合: sql SELECT SUM(sales) AS total_sales, AVG(rating) AS avg_rating, COUNT() AS record_count FROM products;
高级用法: sql SELECT department, COUNT(DISTINCT employee_id) AS unique_employees, GROUP_CONCAT(name ORDER BY hire_date) AS employee_names FROM employees GROUP BY department;
总的来说,这些聚合函数用好了,数据统计和分析那绝对高效。

sql 聚合函数有哪些

嘿,小伙伴们!今天咱们来聊聊SQL里的那些聚集函数,比如count、sum、avg、max和min,它们可是从一大堆数据里提取有用信息的小能手。
比如,你想知道最低温度里最高的值是多少?简单一招,SELECT max(temp_lo) FROM weather;,4 6 度,就这么轻松!要关联城市信息?再简单,SELECT city FROM weather WHERE temp_lo = (SELECT max(temp_lo) FROM weather);,城市名就出来了。

但要注意,这些聚集函数可不是随便就能用在WHERE子句里的,因为它们得先知道哪些数据要参与计算。
不过,别担心,用子查询就能巧妙解决这个问题,比如这样:SELECT city, max(temp_lo) FROM weather GROUP BY city HAVING max(temp_lo) < 4>说到WHERE和HAVING,它们虽然都是筛选数据的,但作用时机不同。
WHERE是在分组和聚集之前筛选,HAVING则是在之后。
WHERE里不能直接用聚集函数,因为得先筛选再计算。
HAVING就得用聚集函数,在分组后的数据上过滤。

在实际操作中,先用WHERE筛选数据,可以避免对不符合条件的行做无用功,提高效率。
比如,要找城市名以"S"开头且最低温度低于4 0度的城市,直接在WHERE里写条件:SELECT FROM weather WHERE city LIKE 'S%' AND temp_lo < 4>
总之,搞懂这些函数和SQL语句的配合,才能玩转SQL聚集函数,让数据处理更高效!

sql中的聚合函数有哪些

在SQL的世界里,有几个超级实用的聚合函数,它们分别是Avg、Count、First、Last、Min、Max、Sum、StDev、StDevP、Var和VarP。
让我来给你一一揭晓它们的魔法。

首先,Avg函数是个计算平均值的牛人,它会把一列中所有非空数字加起来,然后除以数量,比如,你用它来算算商品的平均售价,那真是手到擒来。

Count函数也是个计数高手,它帮你数一数列里有多少个值,要是用COUNT(),那它就会告诉你表里有多少行,哪怕是那些空值也不放过。

First和Last函数,在某些数据库里它们能帮你找到一列的第一个或最后一个值,不过得提醒你,不是所有的数据库都支持这两个小家伙。

Min函数是个找最小值的,用它来找出商品最低售价,简直不能再简单。

Max函数则是找最大值的,用它来找出商品最高售价,效率杠杠的。

Sum函数是个计算总和的,它会把一列中的数值加起来,不过它只对数值类型的列有效哦。

接下来是StDev和StDevP,它们是计算标准偏差的,StDev是样本的,StDevP是总体的,标准偏差是衡量数据波动大小的一个好指标。

Var和VarP呢,它们是计算方差的,Var是样本方差,VarP是总体方差,方差是标准偏差的平方,也是衡量数据波动大小的。

这些函数在SQL里可是大有用处,它们能让你快速掌握数据的统计信息,进而进行更深入的数据分析和挖掘,是不是觉得它们有点儿像SQL里的数据小助手呢?