国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

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

sql中的 where 、group by 和 having 用法解析

2024-08-31 01:04:52
字體:
來源:轉載
供稿:網友

廢話不多說了,直接給大家貼代碼了,具體代碼如下所示:

--sql中的 where 、group by 和 having 用法解析--如果要用到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--將會出現錯誤--選擇列表中的列 '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等。這些函數和其它函數的根本區別就是它們一般作用在多條記錄上。having是分組(group by)后的篩選條件,分組后的數據組內再篩選where則是在分組前篩選where子句中不能使用聚集函數,而having子句中可以,所以在集合函數中加上了HAVING來起到測試查詢結果是否符合條件的作用。即having子句的適用場景是可以使用聚合函數having 子句限制的是組,而不是行having 子句中的每一個元素也必須出現在select列表中。有些數據庫例外,如oracle當同時含有 where 子句、group by 子句 、having 子句及聚集函數時,執行順序如下:執行where子句查找符合條件的數據;使用group by 子句對數據進行分組;對group by 子句形成的組運行聚集函數計算每一組的值;最后用having 子句去掉不符合條件的組  ex:  顯示每個地區的總人口數和總面積.僅顯示那些面積超過1000000的地區。     SELECT region, SUM(population), SUM(area)    FROM bbc    GROUP BY region    HAVING SUM(area)>1000000    在這里,我們不能用where來篩選超過1000000的地區,因為表中不存在這樣一條記錄。(where子句中不能使用聚集函數)    相反,HAVING子句可以讓我們篩選成組后的各組數據  ex: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)    ..........    查詢每一個班級中年齡大于20,性別為男的人數至少為2個的情況    select COUNT(age) as '>20歲人數',classid from Table1 where sex='男' group by classid having COUNT(age)>2底下這個例子很好    SQL> select * from sc;        SNO PNO    GRADE      ---------- ----- ----------YW       95SX       98YY       90YW      89SX       91YY       92YW      85SX       88YY       96YW      95SX       89YY       88    這個表所描述的是4個學生對應每科學習成績的記錄,其中SNO(學生號)、PNO(課程名)、GRADE(成績)。    1、顯示90分以上學生的課程名和成績    //這是一個簡單的查詢,并沒有使用分組查詢    SQL> select sno,pno,grade from sc where grade>=90;        SNO PNO    GRADE      ---------- ----- ----------YW      95SX       98YY       90SX       91YY       92YY       96YW      95    2、顯示每個學生的成績在90分以上的各有多少門    --進行分組顯示,并且按照where條件之后計數    SQL> select sno,count(*) from sc where grade>=90 group by sno;        SNO  COUNT(*)    -  --------- ----------     3     2     1     1    3、這里我們并沒有使用having語句,接下來如果我們要評選三好學生,條件是至少有兩門課程在90分以上才能有資格,      列出有資格的學生號及90分以上的課程數。    //進行分組顯示,并且按照where條件之后計數,在根據having子句篩選分組    SQL> select sno,count(*) from sc where grade>=90 group by sno having count(*)>=2;        SNO  COUNT(*)    ---------- ----------     3     2    這個結果是我們想要的,它列出了具有評選三好學生資格的學生號,跟上一個例子比較之后,發現這是在分組后進行的子查詢。    4、學校評選先進學生,要求平均成績大于90分的學生都有資格,并且語文課必須在95分以上,請列出有資格的學生    //實際上,這個查詢先把語文大于95分的學生號提取出來,之后求平均值,分組顯示后根據having語句選出平均成績大于90的    SQL> select sno,avg(grade) from sc where SNO IN (SELECT SNO FROM SC WHERE GRADE>=95 AND PNO='YW') group by sno having avg(grade)>=90;        SNO AVG(GRADE)    ---------- ----------  94.3333333  90.6666667    5、查詢比平均成績至少比學號是3的平均成績高的學生學號以及平均分數    //having子句中可進行比較和子查詢    SQL> select sno,avg(grade) from sc         group by sno         having avg(grade) > (select avg(grade) from sc where sno=3);


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
九九99九九精彩| 欧洲有码在线视频| 狠狠色丁香婷婷| 免费女人毛片视频| 超碰在线网站| 国产网站免费看| 国产呻吟对白刺激无套视频在线| 天堂亚洲精品| 国产91久久久久| 青青草视频免费在线观看| 蜜桃视频中文字幕| 青青久草在线| 国产一级激情| 午夜影院在线| 国产一区电影| 亚洲欧美日韩一区成人| 老师我好爽再深一点的视频| 国产视频1区| 超碰在线国产| 亚洲成av人影片在线观看| 99热最新网址| 青青草视频在线免费观看| 91啦中文在线| 国产理论电影在线| 性色视频在线| 99爱在线观看| 中文字幕在线资源| 欧美艹逼视频| 天堂√中文在线| av亚洲男人天堂| 国产成人亚洲欧美电影| 天堂在线一二区| 就爱干草视频| www操操操| www.狠狠| 操人视频91| 美女免费视频黄| 任你操在线观看| 在线观看国产视频| 国产成a人亚洲精v品| 国产小视频在线| 国产永久免费高清在线观看视频| 中文字幕av网| 永久av在线| av在线免费播放网站| 亚洲最新永久观看在线| 国产私人尤物无码不卡| 国产美女一区视频| 天天av天天爱| 国产写真视频在线观看| 中文字幕色视频| 88av在线| 在线观看免费观看在线91| 亚洲国产日韩成人综合天堂| av在线天天| 国产免费av高清在线| 国产免费a∨片在线观看不卡| 九九热在线观看 | 777电影在线观看| 国产精品爱久久久久久久小说| 成网站在线观看人免费| 高清av中文在线字幕观看1| 久草亚洲一区| 国产色在线播放| 96精品视频| v天堂福利视频在线观看| 欧美色第一页| 中文字幕在线视频观看| 2020国产在线视频| 久久国产热视频| 国产美女福利在线| 国产香蕉在线| 免费看的av| 国产区av在线| 免费国产在线视频| 精品女厕厕露p撒尿| 黄色毛片在线观看| 精品麻豆国产| 尤物网站在线| 四虎影院成人| 在线观看午夜av| 国产精品爱久久久久久久小说| 欧美日韩久久中文字幕| 在线中文免费视频| 最新av中文字幕| 日韩a视频在线观看| 18激情网站| 国产日韩精品在线看| 久久99亚洲网美利坚合众国| 永久免费在线观看| 国产98在线| 国产三级免费观看| 国内精品免费一区二区三区| av超碰在线| 国产不卡在线| 国产区在线看| 国产黄色一级片| 国产午夜在线| 国产三级视频| 国产porn在线| 国产一级在线| 国产成人高清精品| 伊人影院在线播放| 国产精品久久久久久久久鸭| 最新中文字幕在线视频| 国产美女在线一区二区三区| 国产中文字幕在线观看| 国产精品偷乱一区二区三区| 国产乱子伦三级在线播放| 国产在线看片| √天堂资源地址在线官网| 黄色av网站在线免费观看| 成人免费一区二区三区牛牛 | 亚洲va国产日韩欧美精品色婷婷| 91桃色在线| 在线一区观看| www.操.com| 成在线人视频免费视频| 中文字幕国产欧美| 在线一二三区| 免费黄网站在线观看| 午夜免费视频在线国产| 国产极品视频| 日本免费黄色| 成人亚洲一区二区三区| 国产精品视频一区二区三区麻豆 | www.91在线播放| 午夜视频免费在线观看| 国产xxx在线| 青青草原av在线| 中文字幕网站视频在线| 91看片在线观看| 丁香视频五月| 午夜在线视频播放| 国产亚洲精品久久久网站好莱| av免费在线观看网站| 国产免费福利| 欧美性受xxxx免费视频| 国产九九九九| 色悠久久久久综合网小说| 中文字幕免费在线视频| www免费在线观看视频| 国产黄色片大全| 国产在线观看色| 在线观看av资源网| 黄色激情网址| 欧美日韩在线精品成人综合网| 国产精品久久久久白浆| 国产卡一卡二卡三| 久久香蕉一区| 毛片网站在线观看| 天天激情综合| 色吊丝av中文字幕| 中文字幕av在线| 国产极品一区二区三区| 五月婷婷视频在线观看| 人日人天天爽| 日本18视频网站| 免费日本黄色| 成年人在线观看| 国产美女被遭强高潮免费网站| 麻豆av电影在线观看| 日本啊v在线| 久久久久久五月天久久久久久久久| 亚洲精品影院在线| 在线亚洲精品自拍| 日本在线免费中文字幕| 午夜影院免费| av网址在线免费观看| www.91在线播放| 牛牛精品视频在线| 激情亚洲综合网| 国产九九九九| 国产精品四虎| 四虎国产精品永久地址998| av亚洲在线| 免费在线高清av| 国产午夜在线| av麻豆国产| 免费a级毛片在线播放| 成人亚洲一区二区三区| 国产亚洲精品久久久久久移动网络 | 国产福利小视频在线| 午夜影院免费看| 午夜视频在线| 在线观看中文字幕| 最新亚洲精品国自产在线观看| 在线视频观看亚洲| 久久99精品久久久久久野外| 国产精品美女一区二区视频| 在线免费黄色毛片| 国产欧美日韩精品综合| eeuss影院在线观看第一页| 国产美女免费观看| 亚洲妇熟xxxx妇色黄| 国产永久免费高清在线观看| 国产激情视频一区二区三区| 四虎成人精品在永久免费| 中文字幕有码在线视频| av在线不卡网站|