MySQL分组函数

/**
分类:
sum 求和、avg 平均值、max 最大值、min 最小值、count 计算个数

特点:
1、sum、avg 一般用于处理数值型
   max、min、count 可以处理任何类型【因为可以 order by last_name(姓名,通过名字的首字母排序),薪水、年龄】
2、以上分组函数都忽略null值(null列的值不会计算)
3、可以和distiinc 搭配 去除的意思
4、count 函数介绍
     效率:
        MYISAM     存储引擎下, count(*)的效率高
        INNODB  存储引擎下,COUNT(*) 和 COUNT(1)的效率差不多,但是比count(字段)效率高,
                因为 COUNT(字段)统计的时候,还需要判断

5、和分组函数一同查询的字段要求是 GROUP BY 后面的字段
**/
-- 3、可以和distinc 搭配 去除的意思 
-- 第一列统计:有几种年龄类型
-- 第二列:一共有多少列
select COUNT(DISTINCT age),COUNT(age)
from student;

-- 以下效果是一样的 
select COUNT(*) from student;
select COUNT(1) from student; -- 解释:就是加了一列,这一列的值都是1,然后统计这列值为1的个数
select COUNT(2) from student;
select COUNT('LMGD') from student;-- 解释:就是加了一列,这一列的值都是 'LMGD',然后统计这列值为 'LMGD'的个数

-- 查询当前时间 和 你出生时间相差多少天
-- 可以使用函数 DATEDIFF(expr1,expr2)
select DATEDIFF(NOW(),'1997-08-25');


-- 查询每个工种有奖金的员工的最高工资>1200的工种编号和最高工资
select MAX(工资),empno
from 表
where 工种 is not null
group by empno
HAVING MAX(工资)>12000

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值