mysql中有没有单行函数_MySQL之函数(单行函数、分组函数)

##进阶函数

/*

调用语法:select函数名(实参列表);

分组函数和单行函数的区别:

单行函数:将一个数据进行处理,返回一个值

分组函数:将虚拟表看做一个组,处理一组数据,返回一个值

常见的分组函数:

sum(字段):求该字段的所有值的和

avg(字段):求该字段的平均值

max(字段):求最大值

min(字段):求最小值

count(字段):计算该字段中的非空值的个数

特点:

1.分组函数可以搭配筛选条件使用

2.分组函数的参数可以作为字段或者表达式

3.分组函数都忽略null值

4.分组函数都支持的类型:

max、min、count支持任意类型

sum、avg仅仅支持数值类型

5.count的使用

count(*)或count(常量值):统计结果集中的行数

count(distinct字段):实现去重后的统计

6.和分组函数一同查询的字段不能是任意字段,可以是group by后面的字段

问题:

查询员工平均工资和员工号

select avg(salary),employee_id from employees

*/

#1.简单的查询

SELECT SUM(salary) 和,AVG(salary) 平均值, MAX(salary)最高工资,MIN(salary) 最低工资,COUNT(salary) 个数

FROM employees;

#添加筛选条件

# 案例:查询有奖金的员工的平均工资

SELECT AVG(salary) 平均工资

FROM employees

WHERE commission_pct IS NOT NULL;

##3.分组函数的参数可以是表达式

##案例2:查询年薪的平均值

SELECT MAX(salary*12*(1+IFNULL(commission_pct)))

FROM employees;

##4.分组函数的参数类型可以是任意类型吗?数值型?字符型?日期行?

/*

sum和avg只支持数值型做参数

max、min、count可以支持任意类型做参数

*/#用于测试

SELECT SUM(last_name),AVG(last_name) FROM employees;

SELECT MAX(last_name),MIN(last_name),COUNT(last_name) FROM employees;

SELECT SUM(hiredate),AVG(hiredate)FROM employees;

SELECT MAX(hiredate),MIN(hirdate),COUNT(hirdate) FROM employees;

##5.分组函数是否都忽略null?

/*

都忽略

*/

SELECT SUM(commission_pct),AVG(commission_pct),SUM(commission_pct)/35,SUM(commission_pct)/107 FROM employees;

SELECT MAX(commission_pct),MIN(commission_pct) FROM employees;

##6.count

/**

count(*):统计结果集中的行数【推荐使用】

count(字段):统计该字段中非空值的个数

count(1):统计结果集合中的行数*/

SELECT COUNT(*) FROM employees WHERE department_id>100;

SELECT COUNT(1) FROM employees WHERE department_id>100;

SELECT COUNT(DISTINCT department_id) FROM employees;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值