最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解SQL中Group By的使用教程

 更新時(shí)間:2023年05月02日 22:43:50   作者:未月廿三  
這篇文章主要介紹了SQL中Group By的使用,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1、概述

“Group By”從字面意義上理解就是根據(jù)“By”指定的規(guī)則對(duì)數(shù)據(jù)進(jìn)行分組,所謂的分組就是將一個(gè)“數(shù)據(jù)集”劃分成若干個(gè)“小區(qū)域”,然后針對(duì)若干個(gè)“小區(qū)域”進(jìn)行數(shù)據(jù)處理。

2、原始表

3、簡(jiǎn)單Group By示例1

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

返回結(jié)果如下表,實(shí)際上就是分類匯總。

4、Group By 和 Order By示例2

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

返回結(jié)果如下表

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

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

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

示例3執(zhí)行后會(huì)提示下錯(cuò)誤,如下圖。這就是需要注意的一點(diǎn),在select指定的字段要么就要包含在Group By語(yǔ)句的后面,作為分組的依據(jù);要么就要被包含在聚合函數(shù)中。

6、Group By All示例4

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

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

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

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

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

7、Group By與聚合函數(shù)

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

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

示例5:求各組平均值

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

示例6:求各組記錄數(shù)目

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

示例7:求各組記錄數(shù)目

8、Having與Where的區(qū)別

  • where 子句的作用是在對(duì)查詢結(jié)果進(jìn)行分組前,將不符合where條件的行去掉,即在分組之前過濾數(shù)據(jù),where條件中不能包含聚組函數(shù),使用where條件過濾出特定的行。
  • having 子句的作用是篩選滿足條件的組,即在分組之后過濾數(shù)據(jù),條件中經(jīng)常包含聚組函數(shù),使用having 條件過濾出特定的組,也可以使用多個(gè)分組標(biāo)準(zhǔn)進(jìn)行分組。

示例8

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

示例9:Having和Where的聯(lián)合使用方法

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

9、Compute 和 Compute By

select * from A where 數(shù)量 > 8

執(zhí)行結(jié)果:

示例10:Compute

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

執(zhí)行結(jié)果如下:

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

示例11:Compute By

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

執(zhí)行結(jié)果如下:

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

  • compute子句必須與order by子句用一起使用
  • compute...by與group by相比,group by 只能得到各組數(shù)據(jù)的統(tǒng)計(jì)結(jié)果,而不能看到各組數(shù)據(jù)

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

總結(jié)

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

相關(guān)文章

最新評(píng)論

专栏| 中阳县| 吉首市| 广丰县| 神木县| 长治市| 泰兴市| 怀远县| 阜康市| 黔江区| 彭阳县| 全州县| 开化县| 巴马| 满洲里市| 高雄县| 丽水市| 乳山市| 邛崃市| 四川省| 佛学| 株洲市| 沐川县| 昌宁县| 八宿县| 喜德县| 扶绥县| 江西省| 常熟市| 二手房| 罗定市| 句容市| 娱乐| 长沙市| 松原市| 澳门| 公主岭市| 定边县| 隆回县| 山丹县| 香河县|