您現在的位置是:首頁 > 棋牌

group by 和 having(搭檔)

  • 由 星移參商 發表于 棋牌
  • 2022-06-03
簡介執行having對分組資料進行操作

sql語句group by什麼意思

group by 和 having(搭檔)

group by:按照某個欄位或者某些欄位進行分組。

having:對分組之後的資料進行再次過濾。

eg。 找出

每個工作

崗位的最高薪資

group by 和 having(搭檔)

【注意】分組函式一般都會和group by聯合使用,並且任何一個分組函式(cunt、sum、avg、max、min) 都是在group by執行結束後才會執行的。當一條sql語句沒有group by的話,整張表的資料會自成一組。

group by 和 having(搭檔)

書寫順序不能顛倒,執行順序:

1。首先執行where語句過濾原始資料;

2。執行group by進行分組;

3。執行having對分組資料進行操作;

4。執行select選出資料;

5。執行order by 排序。

原則

:能在where中過濾的資料,儘量在where中過濾,效率較高;having的過濾是專門對分組之後的資料進行過濾的。

eg。找出每個工作崗位的最高薪資:

group by 和 having(搭檔)

記住:當一條語句中有group by的話,select後面只能跟分組函式和參與分組的欄位。

多個欄位能否聯合起來分組呢?

eg。找出每個部門不同工作崗位的最高薪資:

group by 和 having(搭檔)

找出每個部門的最高薪資,要求顯示薪資大於2900的資料:

group by 和 having(搭檔)

找出每個部門的平均薪資,要求顯示平均薪資大於2000的資料:

group by 和 having(搭檔)

where後面不能使用分組函式,這種情況只能用having過濾。

Top