a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > 文庫 > 正文

詳解SQL中Group By的使用教程

2020-10-29 21:45:36
字體:
來源:轉載
供稿:網友

1、概述

“Group By”從字面意義上理解就是根據“By”指定的規則對數據進行分組,所謂的分組就是將一個“數據集”劃分成若干個“小區域”,然后針對若干個“小區域”進行數據處理。

2、原始表

3、簡單Group By示例1

select 類別, sum(數量) as 數量之和from Agroup by 類別

返回結果如下表,實際上就是分類匯總。

4、Group By 和 Order By示例2

select 類別, sum(數量) AS 數量之和from Agroup by 類別order by sum(數量) desc

返回結果如下表

在Access中不可以使用“order by 數量之和 desc”,但在SQL Server中則可以。

5、Group By中Select指定的字段限制示例3

select 類別, sum(數量) as 數量之和, 摘要from Agroup by 類別order by 類別 desc

示例3執行后會提示下錯誤,如下圖。這就是需要注意的一點,在select指定的字段要么就要包含在Group By語句的后面,作為分組的依據;要么就要被包含在聚合函數中。

6、Group By All示例4

select 類別, 摘要, sum(數量) as 數量之和from Agroup by all 類別, 摘要

示例4中則可以指定“摘要”字段,其原因在于“多列分組”中包含了“摘要字段”,其執行結果如下表

“多列分組”實際上就是就是按照多列(類別+摘要)合并后的值進行分組,示例4中可以看到“a, a2001, 13”為“a, a2001, 11”和“a, a2001, 2”兩條記錄的合并。

SQL Server中雖然支持“group by all”,但Microsoft SQL Server 的未來版本中將刪除 GROUP BY ALL,避免在新的開發工作中使用 GROUP BY ALL。Access中是不支持“Group By All”的,但Access中同樣支持多列分組,上述SQL Server中的SQL在Access可以寫成

select 類別, 摘要, sum(數量) AS 數量之和from Agroup by 類別, 摘要

7、Group By與聚合函數

在示例3中提到group by語句中select指定的字段必須是“分組依據字段”,其他字段若想出現在select中則必須包含在聚合函數中,常見的聚合函數如下表:

函數 作用 支持性
sum(列名) 求和     
max(列名) 最大值     
min(列名) 最小值     
avg(列名) 平均值     
first(列名) 第一條記錄 僅Access支持
last(列名) 最后一條記錄 僅Access支持
count(列名) 統計記錄數 注意和count(*)的區別

示例5:求各組平均值

select 類別, avg(數量) AS 平均值 from A group by 類別;

示例6:求各組記錄數目

select 類別, count(*) AS 記錄數 from A group by 類別;

示例7:求各組記錄數目

8、Having與Where的區別

  • where 子句的作用是在對查詢結果進行分組前,將不符合where條件的行去掉,即在分組之前過濾數據,where條件中不能包含聚組函數,使用where條件過濾出特定的行。
  • having 子句的作用是篩選滿足條件的組,即在分組之后過濾數據,條件中經常包含聚組函數,使用having 條件過濾出特定的組,也可以使用多個分組標準進行分組。

示例8

select 類別, sum(數量) as 數量之和 from Agroup by 類別having sum(數量) > 18

示例9:Having和Where的聯合使用方法

select 類別, SUM(數量)from Awhere 數量 gt;8group by 類別having SUM(數量) gt; 10

9、Compute 和 Compute By

select * from A where 數量 > 8

執行結果:

示例10:Compute

select *from Awhere 數量>8compute max(數量),min(數量),avg(數量)

執行結果如下:

compute子句能夠觀察“查詢結果”的數據細節或統計各列數據(如例10中max、min和avg),返回結果由select列表和compute統計結果組成。

示例11:Compute By

select *from Awhere 數量>8order by 類別compute max(數量),min(數量),avg(數量) by 類別

執行結果如下:

示例11與示例10相比多了“order by 類別”和“... by 類別”,示例10的執行結果實際是按照分組(a、b、c)進行了顯示,每組都是由改組數據列表和改組數統計結果組成,另外:

  • compute子句必須與order by子句用一起使用
  • compute...by與group by相比,group by 只能得到各組數據的統計結果,而不能看到各組數據

在實際開發中compute與compute by的作用并不是很大,SQL Server支持compute和compute by,而Access并不支持

總結

以上所述是小編給大家介紹的詳解SQL中Group By的使用教程,希望對大家有所幫助!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品女教师av久久 | 2022中文字幕| 欧美a级成人淫片免费看 | 亚洲精品一区二区三区蜜桃久 | 91精品麻豆日日躁夜夜躁 | 中国大陆高清aⅴ毛片 | 久久密 | 中文日韩 | 黄色在线免费观看 | 美女一区| 亚洲综合精品 | 国产精品成人国产乱一区 | 美国一级黄色片 | 国产乱码精品一区二区三区av | 欧美精品一区二区三区视频 | 久久精品91久久久久久再现 | 国产一区二区三区久久 | 久久久久久国产 | 99精品九九| 精品成人一区二区 | 国产一区二区免费 | 精品视频 | 最近韩国日本免费高清观看 | www.com久久 | 久久久99精品免费观看 | 蜜臀99久久精品久久久久久软件 | 成人五月网 | 激情久久av一区av二区av三区 | 国产福利精品一区二区三区 | 国产精品91色 | 久久99精品久久久久久久久久久久 | 久久久精选| 国产96在线观看 | 五月色综合 | 久久久久综合 | 日韩精品一区二区三区四区 | 精品日韩欧美一区二区在线播放 | 久久久久久久国产精品 | 日韩精品视频在线免费观看 | 国产精品久久久久一区二区三区共 | 得得啪在线视频 |