日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

MySQL中sum函數使用的實例教程

瀏覽:175日期:2023-10-05 08:12:28
文章簡介

今天分享一下MySQL中的sum函數使用。該函數已經成為大家操作MySQL數據庫中時常用到的一個函數,這個函數統計滿足條件行中指定列的和,想必肯定大家都知道了,本身就沒什么講頭了,這篇文章主要是通過幾個小案例深入了解一下該函數,以及在做MySQL查詢時如何使用sum函數做優化。

語法分析

SUM([DISTINCT] expr) [over_clause]

Returns the sum of expr. If the return set has no rows, SUM() returns NULL. The DISTINCT keyword can be used to sum only the distinct values of expr. If there are no matching rows, SUM() returns NULL. This function executes as a window function if over_clause is present.

上面幾句是MySQL官方文檔的一個功能描述。這里翻譯一下大致的意思是什么。

返回expr表達式的和。如果沒有返回行數,則返回NULL。這里的DISTINCT是為了去掉表達式expr中的重復值。 如果沒有匹配到行,該函數也返回NULL。 如果設置了over_clause,則該函數作為窗口函數執行。對窗口函數不熟悉的,可以去了解一下MySQL中的窗口函數。函數解釋

在使用該函數時,我們應該思考一下,該函數是如何統計表達式中的和呢?可能有的程序員會想,這個函數直接去統計滿足條件中所有行的總和。這么理解其實也沒錯,只是表達的不是很準確或者他不夠真實了解運行原理。實際上該函數是根據匹配行的值,一個一個累加起來的。這里舉個例子,在一個訂單表中滿足條件的有10行數據,我們需要統計訂單中的總價,sum的初始值是0,在匹配到第一行時,訂單價格是10,此時sum就變成10,匹配到第二行,訂單價格是20,這時候sum就是30。第三行訂單價格是50,這時候sum就是80。按照這種方式依次累加。

行數 訂單價格 sum值 第一行 10.00 10.00 第二行 20.00 30.00 第三行 30.00 60.00 第四行 40.00 100.00 第五行 50.00 150.00 第...行 ... ... 第十行 100.00 550.00

實例演示

假設有下面一張表(Delivery),表結構如下:

+-----------------------------+---------+| Column Name | Type |+-----------------------------+---------+| delivery_id | int || customer_id | int || order_date | date || customer_pref_delivery_date | date || order_money | decimal |+-----------------------------+---------+

delivery_id 是表的主鍵。

該表保存著顧客的食物配送信息,顧客在某個日期下了訂單,并指定了一個期望的配送日期(和下單日期相同或者在那之后)。如果顧客期望的配送日期和下單日期相同,則該訂單稱為 「即時訂單」,否則稱為「計劃訂單」。里面有如下數據:

+-------------+-------------+------------+-----------------------------+-------------+| delivery_id | customer_id | order_date | customer_pref_delivery_date | order_money |+-------------+-------------+------------+-----------------------------+-------------+| 1 | 1 | 2019-08-01 | 2019-08-02 | 1.23 || 2 | 5 | 2019-08-02 | 2019-08-02 | 1.01 || 3 | 1 | 2019-08-11 | 2019-08-11 | 1.09 || 4 | 3 | 2019-08-24 | 2019-08-26 | 1.00 || 5 | 4 | 2019-08-21 | 2019-08-22 | 10.00 || 6 | 2 | 2019-08-11 | 2019-08-13 | 12.09 |+-------------+-------------+------------+-----------------------------+-------------+

實例一

統計出該表中所有的訂單總金額。這里就很簡單了,也是我們常用的使用方式,直接sum()參數填寫某一個列就行了。按照上面的語法規則應該是一個表達式,實際上一列也是一個表達式。

select sum(order_money) from Delivery;

實例二

寫一條 SQL 查詢語句獲取即時訂單所占的百分比, 保留兩位小數。這個可能就有一點點難度了,因為你很少用這個語法,如果你用過,就會發現也很簡單。

首先你要理解,既然是查詢某一個類型的占比,肯定就需要統計總和。我們可以分別去統計到訂單總和sum1,然后再去統計即時訂單總和sum1,然后再去統計即時訂單總和sum1,然后再去統計即時訂單總和sum2。然后在相除就可以了。但是這里明確要求一條SQL語句。那該如何解決呢?

這里就需要你深入了解一下sum的運行原理,我們可以設想我們一行一行的去讀取數據,然后讓sum一行一行的累計起來,是不是就可以得到sum2的綜合了?至于sum2的綜合了?至于sum2的綜合了?至于sum1肯定很好統計,直接是表中行數的綜合。

題解方式一:

select round ( sum(case when order_date = customer_pref_delivery_date then 1 else 0 end) / count(*) * 100, 2) as immediate_percentagefrom Delivery

題解方式二:

select round ( sum(order_date = customer_pref_delivery_date) / count(*) * 100, 2) as immediate_percentagefrom Delivery

這里當sum表達式滿足條件,返回1,每次讀到滿足的一行數據,sum都加1,最后數據讀完sum也就加完了。因此滿足條件的總條數就出來了。

題目來源

改題目來源于LeetCode。

來源:力扣(LeetCode)

鏈接:leetcode-cn.com/problems/im…

還有一個比較不錯的例子,推薦好好解讀一下。加深該函數的使用場景。

https://www.jb51.net/article/207813.htm

總結

到此這篇關于MySQL中sum函數使用的文章就介紹到這了,更多相關MySQL sum函數使用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩高清一区在线| 国产精品男女| 日韩一区亚洲二区| 神马久久午夜| 欧美日韩国产高清电影| 欧美福利专区| 欧美片第1页| 91国语精品自产拍| 美女久久一区| 国产亚洲精品精品国产亚洲综合| 国产精品欧美日韩一区| 久久字幕精品一区| 久久久一本精品| 99成人在线| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 日韩精品中文字幕吗一区二区| 日韩激情啪啪| 91亚洲自偷观看高清| 国内精品福利| 亚洲毛片一区| 国产一区二区三区不卡av| 国产一区日韩一区| 亚洲免费福利一区| 国产在线日韩精品| 香蕉久久久久久久av网站| 国产日韩亚洲| 欧美日韩亚洲在线观看| 日韩精品视频中文字幕| 日韩一区二区三区免费播放| 日韩影院在线观看| 成人在线超碰| 国产精品普通话对白| 麻豆久久久久久| 欧美日韩日本国产亚洲在线 | 欧美日韩尤物久久| 午夜视频一区二区在线观看| 免费看久久久| 亚洲经典在线| 精品国产亚洲一区二区三区大结局| 免费国产自久久久久三四区久久 | a日韩av网址| 婷婷综合一区| 亚洲精品一区三区三区在线观看| 亚洲精品护士| 激情不卡一区二区三区视频在线| 免费日韩av| 日韩欧美1区| 国产午夜一区| 99综合视频| 国产精品精品| 国产美女久久| 视频在线观看一区二区三区| 欧洲一级精品| 久久精品欧洲| 奇米777国产一区国产二区| 国产韩日影视精品| 国产拍在线视频| 国产精品久久久久毛片大屁完整版| 国产视频一区在线观看一区免费| 国产日产一区| 日韩不卡一区二区| 免费人成黄页网站在线一区二区| 久久久久国产精品一区三寸| 欧美激情亚洲| 欧美日韩99| 天堂av在线一区| av在线日韩| yellow在线观看网址| 美女视频一区在线观看| 亚洲视频播放| 香蕉精品久久| 久久久精品午夜少妇| 精品一区视频| 国产经典一区| 久久久777| 国产极品一区| 丝瓜av网站精品一区二区| 免费在线观看一区| 国产精品婷婷| 久久精品观看| 韩国三级一区| 日韩大片在线播放| 免费看久久久| 国产亚洲高清一区| 国产精品探花在线观看| 蜜桃av一区二区| 亚洲精品小说| 日韩av一级| 精品久久在线| 激情婷婷综合| 成人日韩av| 国产一区二区三区日韩精品| 日韩高清欧美激情| 日韩中文字幕视频网| 亚洲成人日韩| 91一区二区| 丝袜美腿诱惑一区二区三区| 美女久久精品| 国产精品最新自拍| 亚洲aa在线| 欧美午夜三级| 日韩精品视频在线看| 亚洲精品高潮| 亚洲人www| 国产 日韩 欧美 综合 一区| 精品免费视频| 国产精品久久久久久av公交车| | 久久三级视频| 久久精品女人| 国产精品黄色片| 精品一区二区三区中文字幕在线| 免费在线观看成人| 日韩精品电影一区亚洲| 欧美日韩国产探花| 久久精品不卡| 日本欧美在线看| 久久国产精品成人免费观看的软件| 久久久久一区| 999久久久精品国产| 亚洲黄色免费看| 亚洲高清不卡| 国产亚洲福利| 日日摸夜夜添夜夜添国产精品| 亚洲免费精品| 日韩精品中文字幕吗一区二区 | bbw在线视频| 亚洲小说欧美另类婷婷| 国产色综合网| 亚洲欧美网站在线观看| 国产精品一区二区av日韩在线| 亚洲高清二区| 午夜在线视频观看日韩17c| 欧美精品一区二区三区精品| 日韩精品看片| 亚洲精品人人| 国产精品久久久久久久久久妞妞 | 99精品在线| 日韩av福利| 99成人在线| 亚洲精品无播放器在线播放| 国产精品视频一区二区三区四蜜臂| 久久99蜜桃| 国产精品一区亚洲| 正在播放日韩精品| 99在线观看免费视频精品观看| 日韩欧美中文字幕在线视频| 国产精品视频一区二区三区| 色综合五月天| 午夜欧美精品久久久久久久| 中文字幕日韩欧美精品高清在线| 日韩二区三区四区| 欧美日韩免费看片| 蜜桃免费网站一区二区三区| 美女视频一区在线观看| 日本欧美不卡| 美女网站久久| 韩日一区二区| 麻豆久久久久久| 亚洲欧美一区在线| 欧美三级第一页| 99久久亚洲精品蜜臀| 日韩三级视频| 国产黄大片在线观看| 亚洲一区区二区| 久久97久久97精品免视看秋霞| 欧美亚洲精品在线| 国产美女精品视频免费播放软件| 国产69精品久久| 日本色综合中文字幕| 久久精品国产一区二区| 国产视频亚洲| 91日韩欧美| 欧美成人国产| 卡一卡二国产精品| 亚洲精品国产偷自在线观看| 欧美日本二区| 日本美女一区| 亚洲精品精选| 久久国产亚洲| 麻豆视频久久| 国产精品qvod| 日韩精品一区第一页| 成人精品中文字幕| 国产精品白丝一区二区三区| 夜夜精品视频| 在线天堂资源www在线污| 国产美女久久| 91精品一区国产高清在线gif | 欧美91视频| 香蕉精品视频在线观看| 国产精品xx| 国产精品伦理久久久久久| 91九色精品| 久久精品导航| 色综合狠狠操| 色8久久久久| 国产精品毛片| 欧美91在线|欧美| 男人的天堂久久精品|