" />

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

SQL HAVING子句在GROUP BY中的條件篩選靈活運(yùn)用

 更新時(shí)間:2023年11月30日 09:44:10   作者:小萬哥  
這篇文章主要為大家介紹了SQL HAVING子句在GROUP BY中的條件篩選靈活運(yùn)用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

SQL HAVING子句

HAVING子句被添加到SQL中,因?yàn)?code>WHERE關(guān)鍵字不能與聚合函數(shù)一起使用。

HAVING語法

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);

演示數(shù)據(jù)庫

以下是Northwind示例數(shù)據(jù)庫中“Customers”表的一部分選擇:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

SQL HAVING示例

以下SQL語句列出了每個(gè)國家的客戶數(shù)量。只包括擁有超過5名客戶的國家:

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;

以下SQL語句列出了每個(gè)國家的客戶數(shù)量,按高到低排序(只包括擁有超過5名客戶的國家):

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;

演示數(shù)據(jù)庫

以下是Northwind示例數(shù)據(jù)庫中“Orders”表的一部分選擇:

OrderIDCustomerIDEmployeeIDOrderDateShipperID
102489051996-07-043
102498161996-07-051
102503441996-07-082

以及“Employees”表的一部分選擇:

EmployeeIDLastNameFirstNameBirthDatePhotoNotes
1DavolioNancy1968-12-08EmpID1.picEducation includes a BA....
2FullerAndrew1952-02-19EmpID2.picAndrew received his BTS....
3LeverlingJanet1963-08-30EmpID3.picJanet has a BS degree....

更多HAVING示例

以下SQL語句列出了注冊超過10個(gè)訂單的員工:

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM (Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID)
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 10;

以下SQL語句列出了是否員工“Davolio”或“Fuller”注冊了超過25個(gè)訂單:

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
WHERE LastName = 'Davolio' OR LastName = 'Fuller'
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 25;

SQL EXISTS 運(yùn)算符

EXISTS 運(yùn)算符用于測試子查詢中是否存在任何記錄。如果子查詢返回一個(gè)或多個(gè)記錄,EXISTS 運(yùn)算符將返回 TRUE。

EXISTS 語法

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);

演示數(shù)據(jù)庫

以下是 Northwind 示例數(shù)據(jù)庫中 "Products" 表的一部分選擇:

ProductIDProductNameSupplierIDCategoryIDUnitPrice
1Chais1110 boxes x 20 bags18
2Chang1124 - 12 oz bottles19
3Aniseed Syrup1212 - 550 ml bottles10
4Chef Anton's Cajun Seasoning2248 - 6 oz jars22
5Chef Anton's Gumbo Mix2236 boxes21.35

以及 "Suppliers" 表的一部分選擇:

SupplierIDSupplierNameContactNameAddressCityPostalCodeCountry
1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonEC1 4SDUK
2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA
3Grandma Kelly's HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA
4Tokyo TradersYoshi Nagase9-8 Sekimai Musashino-shiTokyo100Japan

SQL EXISTS 示例

以下 SQL 語句返回 TRUE 并列出產(chǎn)品價(jià)格低于 20 的供應(yīng)商:

SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.SupplierID AND Price < 20);

以下 SQL 語句返回 TRUE 并列出產(chǎn)品價(jià)格等于 22 的供應(yīng)商:

SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.SupplierID AND Price = 22);

SQL ANY 和 ALL 運(yùn)算符

ANY 和 ALL 運(yùn)算符允許您在單個(gè)列值和一系列其他值之間進(jìn)行比較。

SQL ANY 運(yùn)算符

ANY 運(yùn)算符返回布爾值作為結(jié)果,如果子查詢值中的任何一個(gè)滿足條件,則返回 TRUE。ANY 意味著如果對(duì)范圍內(nèi)的任何值進(jìn)行操作為真,則條件將為真。

ANY 語法

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
  (SELECT column_name
  FROM table_name
  WHERE condition);

注意:operator 必須是標(biāo)準(zhǔn)比較運(yùn)算符(=、<>、!=、>、>=、< 或 <=)。

SQL ANY 示例

以下 SQL 語句列出了如果在 OrderDetails 表中找到任何記錄的話,具有 Quantity 等于 10 的 ProductName(這將返回 TRUE,因?yàn)?Quantity 列有一些值為 10):

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10);

以下 SQL 語句列出了如果在 OrderDetails 表中找到任何記錄的話,具有 Quantity 大于 99 的 ProductName(這將返回 TRUE,因?yàn)?Quantity 列有一些值大于 99):

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 99);

以下 SQL 語句列出了如果在 OrderDetails 表中找到任何記錄的話,具有 Quantity 大于 1000 的 ProductName(這將返回 FALSE,因?yàn)?Quantity 列沒有任何值大于 1000):

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 1000);

SQL ALL 運(yùn)算符

ALL 運(yùn)算符返回布爾值作為結(jié)果,如果子查詢值中的所有值都滿足條件,則返回 TRUE。ALL 意味著只有當(dāng)范圍內(nèi)的所有值都為真時(shí),條件才為真。

使用 SELECT 的 ALL 語法

SELECT ALL column_name(s)
FROM table_name
WHERE condition;

使用 WHERE 或 HAVING 的 ALL 語法

SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL
  (SELECT column_name
  FROM table_name
  WHERE condition);

注意:operator 必須是標(biāo)準(zhǔn)比較運(yùn)算符(=、<>、!=、>、>=、< 或 <=)。

SQL ALL 示例

以下 SQL 語句列出了所有的產(chǎn)品名稱:

SELECT ALL ProductName
FROM Products
WHERE TRUE;

以下 SQL 語句列出了如果在 OrderDetails 表中的所有記錄的話,具有 Quantity 等于 10 的 ProductName。這當(dāng)然將返回 FALSE,因?yàn)?Quantity 列有許多不同的值(不僅僅是值為 10):

SELECT ProductName
FROM Products
WHERE ProductID = ALL
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10);

以上就是SQL HAVING子句在GROUP BY中的條件篩選靈活運(yùn)用的詳細(xì)內(nèi)容,更多關(guān)于SQL HAVING條件篩選GROUP BY的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 一文深入理解MySQL中的UTF-8與UTF-8MB4字符集

    一文深入理解MySQL中的UTF-8與UTF-8MB4字符集

    在全球化的今天,數(shù)據(jù)的存儲(chǔ)與處理需要支持多種語言與字符集,對(duì)于 Web 應(yīng)用程序和數(shù)據(jù)庫系統(tǒng)來說,字符集的選擇尤為重要,特別是在處理包含多種語言字符(如中文、阿拉伯文、表情符號(hào)等)的系統(tǒng)中,本文將深入探討 MySQL 中的兩個(gè)常見字符集:UTF-8 和 UTF-8MB4
    2024-11-11
  • mysql中的general_log(查詢?nèi)罩?開啟和關(guān)閉

    mysql中的general_log(查詢?nèi)罩?開啟和關(guān)閉

    這篇文章主要介紹了mysql中的general_log(查詢?nèi)罩?開啟和關(guān)閉問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Mysql創(chuàng)建通用設(shè)備管理信息系統(tǒng)數(shù)據(jù)庫

    Mysql創(chuàng)建通用設(shè)備管理信息系統(tǒng)數(shù)據(jù)庫

    下面通過圖文并茂的方式給大家介紹通用設(shè)備管理信息系統(tǒng)數(shù)據(jù)庫的創(chuàng)建過程,感興趣的朋友一起學(xué)習(xí)
    2016-04-04
  • MySQL日志系統(tǒng)詳細(xì)資料分享

    MySQL日志系統(tǒng)詳細(xì)資料分享

    本文給大家匯總介紹了一下MySQL中的日志系統(tǒng)的詳細(xì)資料,非常的細(xì)致,有需要的小伙伴可以參考下
    2017-02-02
  • MySQL存儲(chǔ)數(shù)據(jù)亂碼的問題解析

    MySQL存儲(chǔ)數(shù)據(jù)亂碼的問題解析

    這篇文章主要介紹了MySQL存儲(chǔ)數(shù)據(jù)亂碼的問題解析,作者從實(shí)際使用中的多個(gè)方面定位其原因然后解決,需要的朋友可以參考下
    2015-05-05
  • PostgreSQL與MySQL的完整對(duì)比教程(含遷移步驟)

    PostgreSQL與MySQL的完整對(duì)比教程(含遷移步驟)

    MySQL和PostgreSQL都是強(qiáng)大的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),但它們適用于不同的用例和需求,這篇文章主要介紹了PostgreSQL與MySQL完整對(duì)比的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-05-05
  • Windows下安裝MySQL5.5.19圖文教程

    Windows下安裝MySQL5.5.19圖文教程

    這篇文章主要介紹了Windows下安裝MySQL5.5.19圖文教程,非常詳細(xì),對(duì)每一步都做了說明,需要的朋友可以參考下
    2014-07-07
  • mysql如何查詢兩個(gè)日期之間最大的連續(xù)登錄天數(shù)

    mysql如何查詢兩個(gè)日期之間最大的連續(xù)登錄天數(shù)

    在現(xiàn)在的很多網(wǎng)站中都有這樣一個(gè)功能。記錄用戶的連續(xù)登陸天數(shù),所謂的連續(xù)在線是指相鄰兩天都登錄過,不一定一直在線,但是只要有過登錄即可。這篇文章主要介紹的是利用sql語句如何查詢在兩個(gè)日期之間最大的連續(xù)登錄天數(shù),有需要的朋友們下面來一起看看吧。
    2016-10-10
  • ubuntu 15.04下mysql開放遠(yuǎn)程3306端口

    ubuntu 15.04下mysql開放遠(yuǎn)程3306端口

    這篇文章主要為大家詳細(xì)介紹了ubuntu 15.04開放mysql遠(yuǎn)程3306端口的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 詳解Mysql查詢條件中字符串尾部有空格也能匹配上的問題

    詳解Mysql查詢條件中字符串尾部有空格也能匹配上的問題

    在本篇文章里小編給大家整理的是關(guān)于詳解Mysql查詢條件中字符串尾部有空格也能匹配上的問題,需要的朋友們可以參考下
    2020-02-02

最新評(píng)論

武陟县| 南昌县| 竹北市| 万山特区| 茂名市| 丰县| 章丘市| 民丰县| 新乡县| 宁阳县| 墨脱县| 安阳县| 云南省| 株洲市| 巴里| 台南市| 凤冈县| 公安县| 松江区| 曲阜市| 鲜城| 石柱| 贵定县| 泸定县| 常州市| 深泽县| 云梦县| 万荣县| 当雄县| 宝山区| 赤壁市| 开原市| 泌阳县| 博客| 洞头县| 黄冈市| 昂仁县| 英德市| 浮山县| 林口县| 海晏县|