日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sql中group by 和having 用法解析

發布時間:2025/4/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql中group by 和having 用法解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

--sql中的group by 用法解析:
-- Group By語句從英文的字面意義上理解就是“根據(by)一定的規則進行分組(Group)”。
--它的作用是通過一定的規則將一個數據集劃分成若干個小的區域,然后針對若干個小區域進行數據處理。
--注意:group by 是先排序后分組;
--舉例子說明:如果要用到group by 一般用到的就是“每這個字” 例如說明現在有一個這樣的表:每個部門有多少人 就要用到分組的技術
select DepartmentID as '部門名稱',
COUNT(*) as '個數' from BasicDepartment group by DepartmentID

--這個就是使用了group by +字段進行了分組,其中我們就可以理解為我們按照了部門的名稱ID
--DepartmentID將數據集進行了分組;然后再進行各個組的統計數據分別有多少;
--如果不用count(*) 而用類似下面的語法
select DepartmentID,DepartmentName from BasicDepartment group by DepartmentID

--將會出現錯誤
--消息 8120,級別 16,狀態 1,第 1 行
--選擇列表中的列 'BasicDepartment.DepartmentName' 無效,因為該列沒有包含在聚合函數或 GROUP BY 子句中。
--這就是我們需要注意的一點,如果在返回集字段中,這些字段要么就要包含在Group By語句的后面,
--作為分組的依據;要么就要被包含在聚合函數中。
--出現的錯誤詳解:咱們看看group by 的執行的過程,先執行select 的操作返回一個程序集,
--然后去執行分組的操作,這時候他將根據group by 后面的字段
--進行分組,并且將相同的字段并稱一列數據,如果group by 后面沒有這個字段的話就要分成好多的數據。
--但是分組就只能將相同的數據分成兩列數據,而一列中又只能放入一個字段,所以那些沒有進行分組的
--數據系統不知道將數據放入哪里,所以就出現此錯誤
--目前一種分組情況只有一條記錄,一個數據格是無法放入多個數值的,
--所以這里就需要通過一定的處理將這些多值的列轉化成單值,然后將其放在對應的
--數據格中,那么完成這個步驟的就是聚合函數。這就是為什么這些函數叫聚合函數(aggregate functions)了

--group by all語法解析:
--如果使用 ALL 關鍵字,那么查詢結果將包括由 GROUP BY 子句產生的所有組,即使某些組沒有符合搜索條件的行。
--沒有 ALL 關鍵字,包含 GROUP BY 子句的 SELECT 語句將不顯示沒有符合條件的行的組。
select DepartmentID,DepartmentName as '部門名稱',
COUNT(*) as '個數' from BasicDepartment group by all? DepartmentID,DepartmentName


--group by 和having 解釋:前提必須了解sql語言中一種特殊的函數:聚合函數,
--例如SUM, COUNT, MAX, AVG等。這些函數和其它函數的根本區別就是它們一般作用在多條記錄上。?
--WHERE關鍵字在使用集合函數時不能使用,所以在集合函數中加上了HAVING來起到測試查詢結果是否符合條件的作用。
?create TABLE Table1
??? (
??????? ID int identity(1,1) primary key NOT NULL,???
??????? classid int,?
??????? sex varchar(10),
??????? age int,?
??? )?
????
--添加測試數據
??? Insert into Table1 values(1,'男',20)
??? Insert into Table1 values(2,'女',22)
??? Insert into Table1 values(3,'男',23)
??? Insert into Table1 values(4,'男',22)
??? Insert into Table1 values(1,'男',24)
??? Insert into Table1 values(2,'女',19)
??? Insert into Table1 values(4,'男',26)
??? Insert into Table1 values(1,'男',24)
??? Insert into Table1 values(1,'男',20)
??? Insert into Table1 values(2,'女',22)
??? Insert into Table1 values(3,'男',23)
??? Insert into Table1 values(4,'男',22)
??? Insert into Table1 values(1,'男',24)
??? Insert into Table1 values(2,'女',19


--舉例子說明:查詢table表查詢每一個班級中年齡大于20,性別為男的人數
select COUNT(*)as '>20歲人數',classid? from Table1 where sex='男' group by classid,age having age>20?
--需要注意說明:當同時含有where子句、group by 子句 、having子句及聚集函數時,執行順序如下:
--執行where子句查找符合條件的數據;
--使用group by 子句對數據進行分組;對group by 子句形成的組運行聚集函數計算每一組的值;最后用having 子句去掉不符合條件的組。
--having 子句中的每一個元素也必須出現在select列表中。有些數據庫例外,如oracle.
--having子句和where子句都可以用來設定限制條件以使查詢結果滿足一定的條件限制。
--having子句限制的是組,而不是行。where子句中不能使用聚集函數,而having子句中可以。

轉載于:https://www.cnblogs.com/hllnj2008/p/5481654.html

總結

以上是生活随笔為你收集整理的sql中group by 和having 用法解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91蜜桃网| 国产一区二区精彩视频 | 亚洲av人无码激艳猛片服务器 | 黑人狂躁日本妞hd | 久草最新网址 | 国产一级片中文字幕 | 亚洲va在线∨a天堂va欧美va | 欧美一区二区三区大屁股撅起来 | 久久视频一区二区三区 | 日本一区二区三区免费视频 | 高清一区二区 | 日本xxxwww| 成人动漫在线观看视频 | 欧美大片一区二区 | 欧美少妇精品 | gai视频在线观看资源 | 国产黄免费 | 99久久影院 | 爱爱视频在线看 | 亚洲av永久无码国产精品久久 | 久久午夜精品人妻一区二区三区 | 做暧暧视频在线观看 | 搞黄视频在线观看 | 男男做爰猛烈啪啪高 | 91精品福利在线 | 国产91丝袜 | 伊人视频| 大地资源影视在线播放观看高清视频 | 九九九色| 91福利小视频 | 国产一区网站 | 欧美天堂 | 婷婷激情四射 | 青青网站| 亚洲av熟女国产一区二区性色 | 嫩草研究院在线观看 | 99热只有这里有精品 | 91av免费| 国产乱码在线观看 | 国产成人av影院 | 午夜青青草 | 香蕉福利视频 | 俄罗斯黄色录像 | 精品国产制服丝袜高跟 | 国产3p在线播放 | 中文字幕在线观看第二页 | 色94色欧美sute亚洲线路二 | 欧美日韩a v| 亚洲色图 一区二区 | 国产传媒中文字幕 | 国产日产精品一区二区三区 | 日韩三级视频 | 在线观看av网站 | www在线看片 | 国产精品国产 | av先锋影音 | 国产精品美女自拍视频 | 18岁毛片 | 国产suv精品一区二区60 | 在线观看成人动漫 | 成人免费高清视频 | 国产老女人乱淫免费 | 日韩在线国产 | 99久久久成人国产精品 | 久久精品无码人妻 | 大地资源高清播放在线观看 | 97国产成人无码精品久久久 | 亚洲成av人片在线观看无码 | 日韩成人高清视频 | 久草美女| a级大片在线观看 | 人妻少妇精品久久 | 久久久久久国产免费a片 | 精品久久一二三区 | 国产精品一级无码 | 欧美另类69 | 天天干天天操天天插 | 久久久久久久久97 | 中文字幕22页 | 琪琪在线视频 | 两个女人互添下身爱爱 | 在线视频观看你懂得 | 热久久精 | 欧美日韩成人免费观看 | 欧美aaaaaaaaa| 91污片| 一区二区成人精品 | 黄色a∨| jizz亚洲女人| 国产成人av一区二区三区 | 久久国产精品波多野结衣av | www天堂在线 | 超碰老司机 | 免费成人看视频 | 麻豆视频免费版 | 欧美性猛交乱大交xxxx | 神马午夜电影一区二区三区在线观看 | 天天拍夜夜爽 | 欧美综合图区 |