关于Mysql使用group by和order by函数

这两个函数在sql中使用可以说最频繁的,通过网上看资料和自己写sql测试发现资料里说的和测试结果不同,网上有些资料说group by、order by后面的列必须出现在select查询语句中,还有order by的列必须是group by里的,这并不准确。而且在Mysql里测发现group by的列也不用出现在select中。
一:对于mysql 写sql的顺序:
select -> from-> where->group by->having->order by.
在执行时先执行group by再order by。
二:group by是一个分组函数,主要用于分组统计,实现效果相当于去除重复的列。
(1)常规:select *from employee group by id;
(2)select ename,salary,MAX(id) from employee group by dept;
三:order by主要用于排序,结合limit可以找最值,默认是ASC升序,DESC代表降序。
(1)select *from employee order by id desc;
(2)select ename from employee order by id desc;
(3)多个字段排序
错误结果:select id,hiredate from employee order by id,hiredate desc;
select id,hiredate from employee order by id desc,hiredate asc;
正确结果:select id,hiredate from employee order by id desc,hiredate desc;
四:结合使用:
(1)select ename from employee group by dept order by id desc;
在这里插入图片描述
(2)select ename,dept,id from employee group by dept order by id desc;
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43686722/article/details/84502727