聚合函数
本部分描述了对值集合进行操作的组(聚合)函数。
举个例子,对员工表中“工资”字段的最大值。员工表中工资字段的那列的所有行数据就是一组数据。
AVG 平均函数
即,在一组数据中取平均值。
语法:select AVG(列名) from 表名
SUM 求和函数
即,在一组数据中所有值的总和
语法:select SUM(列名) from 表名
COUNT 计数函数
即,在一组数据中的n条记录。
语法:select COUNT(*) from 表名。
注意:COUNT函数的总和是非NULL值的个数。
GROUP_CONCAT 函数
该函数返回一个字符串结果,其中包含来自组的串联的非NULL值。 如果没有非NULL值,它将返回NULL。
它的全部语法如下:
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
mysql> SELECT student_name,
GROUP_CONCAT(test_score)
FROM student
GROUP BY student_name;
or
mysql> SELECT student_name,
GROUP_CONCAT(DISTINCT test_score
ORDER BY test_score DESC SEPARATOR ' ')
FROM student
GROUP BY student_name;
在MySQL中,您可以获取表达式组合的连接值。 要消除重复值,请使用DISTINCT子句。 要对结果中的值进行排序,请使用ORDER BY子句。 要按相反顺序排序,请在ORDER BY子句中将DESC(降序)关键字添加到要排序的列的名称中。 默认为升序; 这可以使用ASC关键字明确指定。 组中值之间的默认分隔符是逗号(,)。 要明确指定分隔符,请使用SEPARATOR,后跟应该插入到组值之间的字符串文字值。 要完全消除分隔符,请指定SEPARATOR''。
结果被截断为由默认值为1024的group_concat_max_len系统变量给出的最大长度。虽然返回值的有效最大长度受max_allowed_packet的值限制,但该值可以设置得更高。 在运行时更改group_concat_max_len值的语法如下所示,其中val是无符号整数:
SET [GLOBAL | SESSION] group_concat_max_len = val;
返回值是非二进制或二进制字符串,具体取决于参数是非二进制还是二进制字符串。 结果类型为TEXT或BLOB,除非group_concat_max_len小于或等于512,在这种情况下,结果类型为VARCHAR或VARBINARY。