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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql having in_MySQL having子句

發布時間:2024/9/20 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql having in_MySQL having子句 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在本教程中,您將學習如何使用MySQL HAVING子句為行分組或聚合組指定過濾條件。

MySQL HAVING子句簡介

在SELECT語句中使用HAVING子句來指定一組行或聚合的過濾條件。

HAVING子句通常與GROUP BY子句一起使用,以根據指定的條件過濾分組。如果省略GROUP BY子句,則HAVING子句的行為與WHERE子句類似。

請注意,HAVING子句將過濾條件應用于每組分行,而WHERE子句將過濾條件應用于每個單獨的行。

MySQL HAVING子句示例

讓我們舉一些使用HAVING子句的例子來看看它是如何工作。 我們將使用示例數據庫(yiibaidb)中的orderdetails表進行演示。

mysql> desc orderdetails;

+-----------------+---------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-----------------+---------------+------+-----+---------+-------+

| orderNumber | int(11) | NO | PRI | NULL | |

| productCode | varchar(15) | NO | PRI | NULL | |

| quantityOrdered | int(11) | NO | | NULL | |

| priceEach | decimal(10,2) | NO | | NULL | |

| orderLineNumber | smallint(6) | NO | | NULL | |

+-----------------+---------------+------+-----+---------+-------+

5 rows in set

可以使用GROUP BY子句來獲取訂單號,查看每個訂單銷售的商品數量和每個銷售總額:

SELECT

ordernumber,

SUM(quantityOrdered) AS itemsCount,

SUM(priceeach*quantityOrdered) AS total

FROM

orderdetails

GROUP BY ordernumber;

執行上面查詢語句,得到以下結果(部分) -

+-------------+------------+----------+

| ordernumber | itemsCount | total |

+-------------+------------+----------+

| 10100 | 151 | 10223.83 |

| 10101 | 142 | 10549.01 |

| 10102 | 80 | 5494.78 |

| 10103 | 541 | 50218.95 |

| 10104 | 443 | 40206.20 |

| 10105 | 545 | 53959.21 |

| 10106 | 675 | 52151.81 |

| ------- 這里省略了一大波數據 ---------|

| ........ ........... |

| 10421 | 75 | 7639.10 |

| 10422 | 76 | 5849.44 |

| 10423 | 111 | 8597.73 |

| 10424 | 269 | 29310.30 |

| 10425 | 427 | 41623.44 |

+-------------+------------+----------+

326 rows in set

現在,可以通過使用HAVING子句查詢(過濾)哪些訂單的總銷售額大于55000,如下所示:

SELECT

ordernumber,

SUM(quantityOrdered) AS itemsCount,

SUM(priceeach*quantityOrdered) AS total

FROM

orderdetails

GROUP BY ordernumber

HAVING total > 55000;

執行上面查詢語句,得到以下結果 -

+-------------+------------+----------+

| ordernumber | itemsCount | total |

+-------------+------------+----------+

| 10126 | 617 | 57131.92 |

| 10127 | 540 | 58841.35 |

| 10135 | 607 | 55601.84 |

| 10142 | 577 | 56052.56 |

| 10165 | 670 | 67392.85 |

| 10181 | 522 | 55069.55 |

| 10192 | 585 | 55425.77 |

| 10204 | 619 | 58793.53 |

| 10207 | 615 | 59265.14 |

| 10212 | 612 | 59830.55 |

| 10222 | 717 | 56822.65 |

| 10287 | 595 | 61402.00 |

| 10310 | 619 | 61234.67 |

| 10312 | 601 | 55639.66 |

| 10390 | 603 | 55902.50 |

+-------------+------------+----------+

可以使用邏輯運算符(如OR和AND)在HAVING子句中構造復雜過濾條件。 假設您想查找哪些訂單的總銷售額大于50000,并且包含超過600個項目,則可以使用以下查詢:

SELECT

ordernumber,

SUM(quantityOrdered) AS itemsCount,

SUM(priceeach*quantityOrdered) AS total

FROM

orderdetails

GROUP BY ordernumber

HAVING total > 50000 AND itemsCount > 600;

執行上面查詢語句,得到以下結果 -

+-------------+------------+----------+

| ordernumber | itemsCount | total |

+-------------+------------+----------+

| 10106 | 675 | 52151.81 |

| 10126 | 617 | 57131.92 |

| 10135 | 607 | 55601.84 |

| 10165 | 670 | 67392.85 |

| 10168 | 642 | 50743.65 |

| 10204 | 619 | 58793.53 |

| 10207 | 615 | 59265.14 |

| 10212 | 612 | 59830.55 |

| 10222 | 717 | 56822.65 |

| 10310 | 619 | 61234.67 |

| 10312 | 601 | 55639.66 |

| 10360 | 620 | 52166.00 |

| 10390 | 603 | 55902.50 |

| 10414 | 609 | 50806.85 |

+-------------+------------+----------+

假設您想查找所有已發貨(status='Shiped')的訂單和總銷售額大于55000的訂單,可以使用INNER JOIN子句將orders表與orderdetails表一起使用,并在status列和總金額(total)列上應用條件,如以下查詢所示:

SELECT

a.ordernumber, status, SUM(priceeach*quantityOrdered) total

FROM

orderdetails a

INNER JOIN

orders b ON b.ordernumber = a.ordernumber

GROUP BY ordernumber, status

HAVING status = 'Shipped' AND total > 5000;

執行上面查詢,得到以下結果 -

+-------------+---------+----------+

| ordernumber | status | total |

+-------------+---------+----------+

| 10126 | Shipped | 57131.92 |

| 10127 | Shipped | 58841.35 |

| 10135 | Shipped | 55601.84 |

| 10142 | Shipped | 56052.56 |

| 10165 | Shipped | 67392.85 |

| 10181 | Shipped | 55069.55 |

| 10192 | Shipped | 55425.77 |

| 10204 | Shipped | 58793.53 |

| 10207 | Shipped | 59265.14 |

| 10212 | Shipped | 59830.55 |

| 10222 | Shipped | 56822.65 |

| 10287 | Shipped | 61402.00 |

| 10310 | Shipped | 61234.67 |

| 10312 | Shipped | 55639.66 |

| 10390 | Shipped | 55902.50 |

+-------------+---------+----------+

HAVING子句僅在使用GROUP BY子句生成高級報告的輸出時才有用。 例如,您可以使用HAVING子句來回答統計問題,例如在本月,本季度或今年總銷售額超過10000的訂單。

在本教程中,您已經學習了如何使用具有GROUP BY子句的MySQL HAVING子句為行分組或聚合分組指定過濾器條件。

¥ 我要打賞

糾錯/補充

收藏

加QQ群啦,易百教程官方技術學習群

注意:建議每個人選自己的技術方向加群,同一個QQ最多限加 3 個群。

總結

以上是生活随笔為你收集整理的mysql having in_MySQL having子句的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美s码亚洲码精品m码 | 男人天堂伊人 | 久久三级视频 | 女futa攻玩遍整个后宫 | 成人欧美一区二区三区黑人 | 99精品在线视频观看 | 成人自拍视频网 | 2019亚洲男人天堂 | 午夜性色 | 大奶子av| 精品国产91乱码一区二区三区 | 日韩欧美一级在线 | 午夜毛片在线观看 | 亚洲v日韩v综合v精品v | 狠狠干女人 | 国产精品网站入口 | 91精品久久久久久久久 | 一区二区三区日韩欧美 | 一级成人免费 | 久久资源av | 欧美日韩视频在线 | 成人自拍一区 | 91在线视频免费 | 久操社区 | 青青色在线视频 | 国产精品国产三级国产专区51区 | 这里只有精品9 | 四虎影视最新网址 | 美女网站免费视频 | 久久久久久久9999 | 欧美精品一区在线观看 | 日日干日日摸 | 欧美熟女一区二区 | 成人福利一区二区三区 | 午夜91 | 亚洲精品一区二三区不卡 | 四虎影院在线看 | 美人被强行糟蹋np各种play | 久久女人网 | 欧美a在线播放 | 91精品久久香蕉国产线看观看 | 黄色草逼视频 | 亚洲图片视频小说 | youjizzxxxxx| 可乐操亚洲| 在线观看va | 色玖玖综合 | 黑人玩弄人妻一区二区三区影院 | 久久婷婷五月综合色国产香蕉 | 夏晴子在线| 超碰香蕉| 欧美日韩在线观看一区 | 亚洲成人免费在线观看 | 少妇精品无码一区二区免费视频 | 实拍女处破www免费看 | 一区二区三区 欧美 | 久草福利视频 | 女仆乖h调教跪趴1v1 | 在线观看污污网站 | 午夜看毛片 | 在线免费观看视频 | 国产成人精品二区三区亚瑟 | 亚洲性生活| 亚洲无吗av | 制服中文字幕 | 一区在线不卡 | 看全色黄大色黄大片女一次牛 | 久久99精品国产91久久来源 | 91成人在线免费视频 | 精品国产精品国产偷麻豆 | 国产免费不卡 | 亚洲欧美国产精品久久久久久久 | 在线播放91| 一卡二卡在线视频 | 713电影免费播放国语 | 4438全国成人免费 | 日韩三级视频在线播放 | 超碰成人久久 | 亚洲精品无码一区二区 | 黄色成人免费视频 | 欧美三级在线播放 | 婷婷看片| av无码精品一区二区三区宅噜噜 | 韩国视频一区二区三区 | 麻豆av影院 | 欧美女优在线观看 | 天堂在线视频免费观看 | 欧美黑人巨大xxx极品 | 奇米网狠狠干 | 99热只有这里有精品 | 999精品在线 | 人妻无码一区二区三区免费 | 国产午夜精品视频 | 福利小视频在线播放 | 国产青草| 老司机免费精品视频 | 毛片随便看 | 四虎最新网址在线观看 | 经典杯子蛋糕日剧在线观看免费 |