久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何在數據庫中使用group by方法

151次閱讀
沒有評論

共計 1958 個字符,預計需要花費 5 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

今天就跟大家聊聊有關如何在數據庫中使用 group by 方法,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

Group By

概念

Group By 語句從英文的字面意義上理解就是“根據 (by) 一定的規則進行分組 (Group)”。
作用:通過一定的規則將一個數據集劃分成若干個小的區域,然后針對若干個小區域進行數據處理。

注意:group by 是先排序后分組!

語法

SELECT expression1, expression2, ... expression_n, 
 aggregate_function (aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n
[ORDER BY expression [ ASC | DESC ]];

語法說明

expression1,expression2,… expression_n
  表達式未封裝在聚合函數中,必須包含在 SQL 語句末尾的 GROUP BY 子句中。

aggregate_function
  這是一個聚合函數,例如 SUM,COUNT,MIN,MAX 或 AVG 函數。

aggregate_expression
  這是將使用 aggregate_function 的列或表達式。

tables
  您希望從中檢索記錄的表。FROM 子句中必須至少列出一個表。

where
  可選的。這些是要選擇的記錄必須滿足的條件。

ORDER BY 表達式
  可選的。用于對結果集中的記錄進行排序的表達式。如果提供了多個表達式,則值應以逗號分隔。

ASC
  可選的。ASC 按表達式按升序對結果集進行排序。如果沒有修飾符是提供者,則這是默認行為。

DESC
  可選的。DESC 按表達式按降序對結果集進行排序。

常用聚合函數

count() 計數

sum() 求和

avg() 平均數

max() 最大值

min() 最小值

舉例

我們以下面兩張表舉例:

學生表(Student) 

IDStudentNameStudentClassID1 小明 12 小紅 23 小蘭 34 小呂 25 小梓 1

班級表(Class)

ClassIDClassName1 軟件一班 2 軟件二班 3 軟件三班

計算每個班都有多少學生?

SELECT cl.ClassName,COUNT(stu.StudentClassID) AS studentNum
FROM student stu LEFT JOIN class cl ON stu.StudentClassID = cl.ClassID
GROUP BY cl.ClassName;

計算結果:

ClassNameStudentName 軟件一班 2 軟件二班 2 軟件三班 1

HAVING

HAVING 語句通常與 GROUP BY 語句聯合使用,用來過濾由 GROUP BY 語句返回的記錄集。

HAVING 語句的存在彌補了 WHERE 關鍵字不能與聚合函數聯合使用的不足。

通俗的說:WHERE 過濾行,HAVING 過濾組

語法

SELECT expression1, expression2, ... expression_n, 
 aggregate_function (aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n

語法說明

HAVING condition 這是另一個條件,僅應用于聚合結果以限制返回行的組。只有那些條件評估為 TRUE 的組才會包含在結果集中。

舉例

采用上面兩張數據表

查詢學生人數大于 2 人的班級?

SELECT cl.ClassName,COUNT(stu.StudentClassID) AS studentNum
FROM student stu LEFT JOIN class cl ON stu.StudentClassID = cl.ClassID
GROUP BY cl.ClassName
HAVING COUNT(stu.StudentClassID)

計算結果:

ClassNameStudentName 軟件一班 2 軟件二班 2

小結

當 group by 與聚合函數配合使用時,功能為分組后計算

當 group by 與 having 配合使用時,功能為分組后過濾,獲得滿足條件的分組的返回結果。

having 與 where 區別:where 過濾行,having 過濾組

看完上述內容,你們對如何在數據庫中使用 group by 方法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計1958字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 运城市| 克什克腾旗| 吉木萨尔县| 古交市| 甘谷县| 托克逊县| 达拉特旗| 颍上县| 界首市| 专栏| 裕民县| 大关县| 红安县| 桐庐县| 玛沁县| 佛冈县| 陵水| 石城县| 永胜县| 临漳县| 鄂州市| 潼关县| 磐安县| 河南省| 渭源县| 孝义市| 鹰潭市| 济南市| 电白县| 海丰县| 大田县| 临沂市| 庐江县| 怀来县| 乌拉特后旗| 福泉市| 梁平县| 宜阳县| 舒兰市| 奎屯市| 上林县|