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

SQL中having和where如何使用

182次閱讀
沒有評論

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

這篇文章將為大家詳細講解有關 SQL 中 having 和 where 如何使用,文章內容質量較高,因此丸趣 TV 小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

“Where”是一個約束聲明,使用 Where 來約束來之數據庫的數據,Where 是在結果返回之前起作用的,且 Where 中不能使用聚合函數。

“Having”是一個過濾聲明,是在查詢返回結果集以后對查詢結果進行的過濾操作,在 Having 中可以使用聚合函數。

聚合函數,SQL 基本函數,聚合函數對一組值執行計算,并返回單個值。除了 COUNT 以外,聚合函數都會忽略空值。聚合函數經常與 SELECT 語句的 GROUP BY 子句一起使用。

Transact-SQL 編程語言提供下列聚合函數:

1.AVG 返回指定組中的平均值,空值被忽略。

例:select prd_no,avg(qty) from sales group by prd_no

2. COUNT 返回指定組中項目的數量。

例:select count(prd_no) from sales

3. MAX 返回指定數據的最大值。

例:select prd_no,max(qty) from sales group by prd_no

4. MIN 返回指定數據的最小值。

例:select prd_no,min(qty) from sales group by prd_no

在說區別之前,得先介紹 GROUP BY 這個子句,而在說 GROUP 子句前,又得先說說“聚合函數”——SQL 語言中一種特殊的函數。例如 SUM, COUNT, MAX, AVG 等。這些函數和其它函數的根本區別就是它們一般作用在多條記錄上。如:

SELECT SUM(population) FROM vv_t_bbc ;

這里的 SUM 作用在所有返回記錄的 population 字段上,結果就是該查詢只返回一個結果,即所有國家的總人口數。

而通過使用 GROUP BY 子句,可以讓 SUM 和 COUNT 這些函數對屬于一組的數據起作用。當你指定 GROUP BY region 時,只有屬于同一個 region(地區)的一組數據才將返回一行值,也就是說,表中所有除 region(地區)外的字段,只能通過 SUM, COUNT 等聚合函數運算后返回一個值。

下面再說說“HAVING”和“WHERE”:

HAVING 子句可以讓我們篩選成組后的各組數據,WHERE 子句在聚合前先篩選記錄.也就是說作用在 GROUP BY 子句和 HAVING 子句前;而 HAVING 子句在聚合后對組記錄進行篩選。

讓我們還是通過具體的實例來理解 GROUP BY 和 HAVING 子句:

SQL 實例:

一、顯示每個地區的總人口數和總面積:

SELECT region, SUM(population), SUM(area)FROM bbcGROUP BY region

先以 region 把返回記錄分成多個組,這就是 GROUP BY 的字面含義。分完組后,然后用聚合函數對每組中的不同字段(一或多條記錄)作運算。

二、顯示每個地區的總人口數和總面積.僅顯示那些人口數量超過 1000000 的地區。

SELECT region, SUM(population), SUM(area)FROM bbcGROUP BY regionHAVING SUM(population) 1000000

[注] 在這里,我們不能用 where 來篩選超過 1000000 的地區,因為表中不存在這樣一條記錄。

相反,HAVING 子句可以讓我們篩選成組后的各組數據.

ps: 如果想根據 sum 后的字段進行排序可以在后面加上:order by sum(population) desc/asc

關于 SQL 中 having 和 where 如何使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-03發表,共計1556字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 铁岭县| 周宁县| 宝应县| 和龙市| 紫金县| 汉寿县| 张家港市| 全南县| 新乡市| 兴化市| 营口市| 库伦旗| 高台县| 上高县| 邢台市| 丰顺县| 汽车| 文登市| 教育| 吉林省| 黔东| 桑植县| 封丘县| 新田县| 越西县| 库车县| 广昌县| 黄冈市| 通江县| 左贡县| 游戏| 顺义区| 黔西| 马关县| 潼南县| 怀宁县| 开鲁县| 揭阳市| 通河县| 清苑县| 自贡市|