欢迎来到IDC91站长网!
解决服务器各种技术问题,加微信uecomzsr

MySQL

当前位置: IDC91 > 数据库 > MySQL

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

时间:2022-05-30 13:54:49|栏目: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。按照这种方式依次累加。

实例演示

假设有下面一张表(Delivery),表结构如下:

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

上一篇:MySQL巧用sum、case和when优化统计查询

栏    目:MySQL

下一篇:浅谈为什么MySQL不推荐使用子查询和join

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

本文地址:https://idc91.com/shujuku/3847.html

广告投放 | 联系我们 | 免责申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

Copyright © 2023 IDC91.COM 版权所有晋ICP备17006296号