91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

分組查詢GROUP BY的使用與SQL執行順序的講解

發布時間:2020-10-13 11:31:02 來源:腳本之家 閱讀:115 作者:CODETC 欄目:MySQL數據庫

在SQL中使用GROUP BY來對SELECT的結果進行數據分組,在具體使用GROUP BY之前需要知道一些重要的規定。

  • 1、GROUP BY子句可以包含任意數目的列。也就是說可以在組里再分組,為數據分組提供更細致的控制。
  • 2、如果在GROUP BY子句中指定多個分組,數據將在最后指定的分組上匯總。
  • 3、GROUP BY子句中列出的每個列都必須是檢索列或有效的表達式(但不能是聚集函數)。如果在SELECT中使用了表達式,則必須在GROUP BY子句中指定相同的表達式。不能使用別名。
  • 4、出了聚集計算語句外,SELECT語句中的每一列都必須在GROUP BY子句中給出。
  • 5、如果分組列中有NULL值,則NULL將作為一個分組返回。如果有多行NULL值,它們將分為一組。
  • 6、GROUP BY子句必須在WHERE子句之后,ORDER BY之前。

過濾分組

對分組過于采用HAVING子句。HAVING子句支持所有WHERE的操作。HAVING與WHERE的區別在于WHERE是過濾行的,而HAVING是用來過濾分組。

另一種理解WHERE與HAVING的區別的方法是,WHERE在分組之前過濾,而HAVING在分組之后以每組為單位過濾。

分組與排序

一般在使用GROUP BY子句時,也應該使用ORDER BY子句。這是保證數據正確排序的唯一方法。

SQL SELECT語句的執行順序:

  • 1、from子句組裝來自不同數據源的數據;
  • 2、where子句基于指定的條件對記錄行進行篩選;
  • 3、group by子句將數據劃分為多個分組;
  • 4、使用聚集函數進行計算;
  • 5、使用having子句篩選分組;
  • 6、計算所有的表達式;
  • 7、使用order by對結果集進行排序;
  • 8、select 集合輸出。

舉個例子吧

select 考生姓名, max(總成績) as max總成績
from tb_Grade
where 考生姓名 is not null
group by 考生姓名
having max(總成績) > 600
order by max總成績

在上面的示例中 SQL 語句的執行順序如下:

  • 1、首先執行 FROM 子句, 從 tb_Grade 表組裝數據源的數據
  • 2、執行 WHERE 子句, 篩選 tb_Grade 表中所有數據不為 NULL 的數據
  • 3、執行 GROUP BY 子句, 把 tb_Grade 表按 "學生姓名" 列進行分組
  • 4、計算 max() 聚集函數, 按 "總成績" 求出總成績中最大的一些數值
  • 5、執行 HAVING 子句, 篩選課程的總成績大于 600 分的.
  • 6、執行 ORDER BY 子句, 把最后的結果按 "Max 成績" 進行排序.

注:如果使用了連接join和on,則會在where執行之前先執行on,然后執行join,接著才去執行where。

分組查詢GROUP BY的使用與SQL執行順序的講解

附:

MySQL中的聚集函數:

  • 1、count()返回某列的行數
  • 2、avg()返回某列的平均值
  • 3、max()返回某列的最大值
  • 4、min()返回某列的最小值
  • 5、sum()返回某列的和
  • 6、distinct 去除重復值

注:avg()忽略值為null的行,count(*)時統計所有行,count(列)時忽略為null的行

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內容請查看下面相關鏈接

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东乡| 鄢陵县| 韶山市| 鄂伦春自治旗| 慈利县| 长沙县| 文登市| 大丰市| 嵊泗县| 扎鲁特旗| 邢台县| 兴业县| 汉寿县| 成安县| 晋宁县| 塔河县| 安化县| 澄江县| 普洱| 镇沅| 郧西县| 兴仁县| 吴忠市| 措勤县| 泸西县| 名山县| 宜州市| 沈丘县| 营口市| 土默特左旗| 柏乡县| 沾益县| 佛山市| 图们市| 建阳市| 栾城县| 绵阳市| 宜都市| 迁安市| 万年县| 财经|