暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

条件查询排序 聚合函数

周周小心得 2021-05-07
321

排序 order by asc/desc

升序:asc

降序:desc

##排序 order by

##升序

##1)查询所有的学生信息,根据年龄进行升序排序

select * from stu order by age asc;

##降序

##2)查询所有的学生信息,根据年龄进行降序排列

select * from stu order by age desc;

##2)查询所有的学生信息,根据名字进行升序排列

select * from stu order by sname asc;

##3)查询所有员工信息,根据工资进行排序,如果工资相同按照员工号升序

select * from emp order by sal desc,empno asc;

聚合函数

Mysql 系统ᨀ供了很多的函数

Count:统计个数,次数,null 不统计

Max:最大值

Min:最小值

Sum:求和

Avg:平均值

Round:四舍五入

有使用聚合函数的时候,一般都会给别名

count 函数

sum 求和,avg 平均分,round 四舍五入

#sumavground

##(1)查询所有员工工资总和

select sum(sal) from emp;

##(2)查询所有员工工资总和、提成总和

select sum(sal) ,sum(comm) from emp;

##(3)查询所有员工工资总和、提成总和、薪资

select sum(sal) ,sum(comm),sum(sal + ifnull(comm,0)) money from emp;

##(3)计算员工的平均工资

select avg(sal) ,avg(comm) from emp;

+-------------+------------+

| avg(sal) | avg(comm) |

+-------------+------------+

| 2073.214286 | 550.000000 |

+-------------+------------+

#(4)平均工资,保留 2 位小数

select round(avg(sal),0) ,avg(comm) from emp;

max min

##max 最大值和 min 最小值

##查询员工表中,工资最高的、最低的

select max(sal) max_sal,min(sal) min_sal from emp;

 分段函数 case

##员工表中,根据薪资不一样,给不一样的评论

>4000,NB666

>3000,NB66

>2000,NB6

<2000,ZZ

select

sal,

case

when sal >4000 then "NB666"

when sal >3000 then "NB66"

when sal >2000 then "NB6"

else "ZZ"

end as pj

from

emp;

字符串截取

Left(A,4)从左边开始截取 4 个字符

Right(A,4) 从右边开始截取 4 个字符

1987-04-19 -1987

select right('1987-04-19',4)

###1)获取员工的入职年份

select ename,hiredate,left(hiredate,4) from emp;

###2)获取员工的入职工龄

select ename,hiredate,2021 - left(hiredate,4) from emp; 


文章转载自周周小心得,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论