1. 程式人生 > >關於Mysql使用group by和order by函式

關於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;
在這裡插入圖片描述