一、聚合函数(常用于group by从句的select查询中)
avg(col):返回指定列的平均值;
count(col):返回指定列中非null值的个数。
min(col):返回指定列的最小值。
max(col):返回指定列的最大值。
sum(col):返回指定列的所有值之和。
group by():对数据进行分组,对执行完 group by 之后的组进行聚合函数的运算,计算每一组的值。
最后用having去掉不符合条件的组,having子句中的每一个元素必须出现在select列表中(只针对于mysql)。
group_concat(col): 返回由属于一组的列值连接组合而成的结果,实现行的合并。
函数首先根据group by指定的列进行分组,并且用分隔符分隔,将同一个分组中的值连接起来,返回一个字符串结果。
格式:
group_concat([distinct] 字段名 [order by 排序字段 asc/desc] [separator '分隔符'])
说明:
(1)使用distinct可以排除重复值;
(2)如果需要对结果中的值进行排序,可以使用order by子句;
(3)separator是一个字符串值,默认为逗号。
1 -- 将所有员工的名字合并成一行 2 select group_concat(emp_name) from emp; 3 4 -- 指定分隔符合并 5 select department,group_concat(emp_name separator ';' ) from emp group by department; 6 7 -- 指定排序方式和分隔符 8 select department,group_concat(emp_name order by salary desc separator ';' ) from emp group by department;
二、数学函数
abs(x): 返回x的绝对值
bin(x): 返回x的二进制(oct返回八进制,hex返回十六进制)
ceiling(x): 返回大于x的最小整数值
exp(x): 返回值e(自然对数的底)的x次方
floor(x): 返回小于x的最大整数值
greatest(x1,x2,...,xn):返回集合中最大的值
least(x1,x2,...,xn): 返回集合中最小的值
ln(x): 返回x的自然对数
log(x,y):返回x的以y为底的对数
mod(x,y): 返回x/y的模(余数)
pi():返回pi的值(圆周率)
rand():返回0到1内的随机值,可以通过提供一个参数(种子):使rand():随机数生成器生成一个指定的值。
round(x,y):返回参数x的四舍五入的有y位小数的值
sign(x): 返回代表数字x的符号的值
sqrt(x): 返回一个数的平方根
truncate(x,y): 返回数字x截短为y位小数的结果