您現在的位置是:首頁 > 棋牌
group by 和 having(搭檔)
- 由 星移參商 發表于 棋牌
- 2022-06-03
簡介執行having對分組資料進行操作
sql語句group by什麼意思
group by:按照某個欄位或者某些欄位進行分組。
having:對分組之後的資料進行再次過濾。
eg。 找出
每個工作
崗位的最高薪資
【注意】分組函式一般都會和group by聯合使用,並且任何一個分組函式(cunt、sum、avg、max、min) 都是在group by執行結束後才會執行的。當一條sql語句沒有group by的話,整張表的資料會自成一組。
書寫順序不能顛倒,執行順序:
1。首先執行where語句過濾原始資料;
2。執行group by進行分組;
3。執行having對分組資料進行操作;
4。執行select選出資料;
5。執行order by 排序。
原則
:能在where中過濾的資料,儘量在where中過濾,效率較高;having的過濾是專門對分組之後的資料進行過濾的。
eg。找出每個工作崗位的最高薪資:
記住:當一條語句中有group by的話,select後面只能跟分組函式和參與分組的欄位。
多個欄位能否聯合起來分組呢?
eg。找出每個部門不同工作崗位的最高薪資:
找出每個部門的最高薪資,要求顯示薪資大於2900的資料:
找出每個部門的平均薪資,要求顯示平均薪資大於2000的資料:
where後面不能使用分組函式,這種情況只能用having過濾。