广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中sum函数使用的实例教程
  • 297
分享到

MySQL中sum函数使用的实例教程

mysqlsum函数求和sqlsum函数求和mysqlsum函数函数 2022-05-13 16:05:23 297人浏览 独家记忆
摘要

文章简介 今天分享一下Mysql中的sum函数使用。该函数已经成为大家操作mysql数据库中时常用到的一个函数,这个函数统计满足条件行中指定列的和,想必肯定大家都知道了,本身就没什么讲头了,这篇文章主要是通过几个小

文章简介

今天分享一下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_percentage
from Delivery

题解方式二:


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

这里当sum表达式满足条件,返回1,每次读到满足的一行数据,sum都加1,最后数据读完sum也就加完了。因此满足条件的总条数就出来了。

题目来源

改题目来源于LeetCode

来源:力扣(LeetCode)

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

还有一个比较不错的例子,推荐好好解读一下。加深该函数的使用场景。

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

总结

到此这篇关于MySQL中sum函数使用的文章就介绍到这了,更多相关MySQL sum函数使用内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中sum函数使用的实例教程

本文链接: https://www.lsjlt.com/news/10206.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL中sum函数使用的实例教程
    文章简介 今天分享一下MySQL中的sum函数使用。该函数已经成为大家操作MySQL数据库中时常用到的一个函数,这个函数统计满足条件行中指定列的和,想必肯定大家都知道了,本身就没什么讲头了,这篇文章主要是通过几个小...
    99+
    2022-05-13
    mysql sum函数求和 sql sum函数求和 mysql sum函数函数
  • 如何在MySQL中使用sum函数
    这篇文章将为大家详细讲解有关如何在MySQL中使用sum函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。语法分析SUM([DISTINCT] expr) [over_clause]Retu...
    99+
    2023-06-14
  • mysql的sum函数该如何使用
    本文主要给大家简单讲讲mysql的sum函数该如何使用,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望mysql的sum函数该如何使用这篇文章可以给大家带来一...
    99+
    2022-10-18
  • python中求和函数sum()的用法示例
    这篇文章给大家分享的是有关python中求和函数sum()的用法示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,...
    99+
    2023-06-14
  • MySQL中json_extract()函数的使用实例
    目录mysql中json_extract()函数的使用一、初始化二、执行json_extract()MySql中json_extract函数的一个特殊之处在MySql中,是这样的而在Oracle中,是这样的MySQL中j...
    99+
    2022-07-05
    MySQLjsonextract MySQL中json_extract() json_extract函数使用
  • Mysql使用sum()函数返回null的问题详解
    目录介绍问题验证解决区别参考总结介绍 SUM()函数用于计算一组值或表达式的总和,SUM()函数的语法如下: SUM(DISTINCT expression) SUM()函数是如何...
    99+
    2022-11-13
  • Kotlin函数使用示例教程
    目录我们先看看简单的函数我们写一个求和函数函数头函数体调用函数非常简单反编译Java源代码步骤接下来我们来看看匿名函数这是接口的声明我们先看看简单的函数 // 前面的文章我们了解到它...
    99+
    2022-11-13
  • Mysql中使用sum()函数返回null报错怎么解决
    本篇内容介绍了“Mysql中使用sum()函数返回null报错怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!介绍SUM()函数用于计...
    99+
    2023-06-29
  • Go动态调用函数的实例教程
    目录前言JavaScript 动态调用函数Go 中动态调用方法前言 经常在开发的时候会遇到这样的场景,几个模块的都有相同的方法,但会因为不同的类型的需要调用不同模块的方法。使用一个 ...
    99+
    2023-01-03
    Go动态调用函数 Go动态调用
  • Oracle的常用字符函数实例教程
    这篇文章主要介绍“Oracle的常用字符函数实例教程”,在日常操作中,相信很多人在Oracle的常用字符函数实例教程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle...
    99+
    2022-10-19
  • python高阶函数使用教程示例
    目录一、高阶函数函数定义函数名可作为返回值、也可作为参数(1)函数名作为参数(2)函数名作为返回值二、常用的高阶函数(1)map(function,iterable)(2)filte...
    99+
    2022-11-13
  • MYSQL函数使用实例分析
    这篇“MYSQL函数使用实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MYSQL函数使用实例分析”文章吧。MYSQL...
    99+
    2023-06-30
  • TypeScript的函数定义与使用案例教程
    TypeScript中函数的定义和使用 1. 声明一个函数约束其传参类型,以及返回值类型 传入两个参数,没有返回值 const fun1 = (key: string, va...
    99+
    2022-11-12
  • 【MySQL基础教程】函数的介绍与使用
    前言 本文为 【MySQL基础教程】函数的介绍与使用 相关知识,下边具体将对字符串函数,数值函数,日期函数,流程函数等进行详尽介绍~ 📌博主主页:小新要变强 的主页 👉Java全栈学习路线可参考:【Java...
    99+
    2023-08-18
    mysql 数据库 java
  • MySQL函数的使用示例
    小编给大家分享一下MySQL函数的使用示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!案例:使用各种函数操作数据,掌握各种函数...
    99+
    2022-10-18
  • 非常实用的MySQL函数全面总结详解示例分析教程
    目录1.MySQL中关于函数的说明2.单行函数分类3.字符函数4.数学函数5.日期时间函数6.其它常用系统函数7.流程控制函数8.聚合函数1)聚合函数的功能和分类;2)聚合函数的简单...
    99+
    2022-11-12
  • Mysql字符串截取函数使用教程
    MySQL 字符串截取函数:left(), right(), substring(), substring_index()。还有 mid(), substr()。 其中,mi...
    99+
    2021-06-18
    Mysql字符串截取函数使用教程
  • JavaScript函数的使用教程
    目录一、什么是JS的函数二、js函数的定义和调用三、js函数的参数传递和返回值1.参数传递2.返回值一、什么是JS的函数 JavaScript函数类似于java中的方法。 JS中也可...
    99+
    2022-11-13
  • JS中函数科里化的背景与应用实例教程
    目录背景使用场景JS中的函数科里化经典面试题:add(1)(2)(3)总结背景 柯里化(Currying)是一种关于函数的高阶技术。它不仅被用于 JavaScript,还被用于其他编...
    99+
    2022-11-13
  • VueAPI中setuprefreactive函数使用教程
    目录1.setup2.ref函数3.reactive函数4.Vue3.0中的响应式原理5.reactive对比ref1.setup 组件中所用到的:数据、方法等等,均要配置在setu...
    99+
    2022-12-12
    Vue setup函数 Vue ref函数 Vue reactive函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作