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;

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值