mysql怎么实现字段求和


在mysql中,可以利用SUM()函数实现字段求和,该函数返回指定字段值的总和,语法“SELECT SUM(DISTINCT expression) FROM 表名 [WHERE子句];)”。

mysql怎么实现字段求和

本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

在mysql中,可以利用SUM()函数实现字段求和。

SUM()函数用于计算一组值或表达式的总和,可返回指定字段值的总和,SUM()函数的语法如下:

SUM(DISTINCT expression)

SUM()函数是如何工作的?

  • 如果在没有返回匹配行SELECT语句中使用SUM函数,则SUM函数返回NULL,而不是0
  • DISTINCT运算符允许计算集合中的不同值。
  • SUM函数忽略计算中的NULL值。

MySQL SUM()函数示例

我们来看看示例数据库(yiibaidb)中的orderdetails表。

可以使用SUM()函数来计算订单编号10100的总金额,如下查询所示:

SELECT FORMAT(SUM(quantityOrdered * priceEach),2) total FROM orderdetails WHERE orderNumber = 10100;

执行上面查询语句,得到以下结果 -

SONIFY.io SONIFY.io

设计和开发音频优先的产品和数据驱动的解决方案

SONIFY.io 83 查看详情 SONIFY.io
mysql> SELECT FORMAT(SUM(quantityOrdered * priceEach),2) total FROM orderdetails WHERE orderNumber = 10100;
+-----------+
| total     |
+-----------+
| 10,223.83 |
+-----------+
1 row in set

请注意,FORMAT()函数用于格式化SUM()函数的返回值。

MySQL SUM与GROUP BY子句

当与GROUP BY子句组合时,SUM()函数计算GROUP BY子句中指定的每个分组的总和。

例如,可以使用具有GROUP BY子句的SUM函数计算每个订单的总金额,如下所示:

SELECT orderNumber,
       FORMAT(SUM(quantityOrdered * priceEach),2) total
FROM orderdetails
GROUP BY orderNumber
ORDER BY SUM(quantityOrdered * priceEach) DESC;

执行上面查询语句,得到以下结果 -

+-------------+-----------+
| orderNumber | total     |
+-------------+-----------+
|       10165 | 67,392.85 |
|       10287 | 61,402.00 |
|       10310 | 61,234.67 |
|       10212 | 59,830.55 |
*** 此处省略了一大波数据 *****
|       10116 | 1,627.56  |
|       10158 | 1,491.38  |
|       10144 | 1,128.20  |
|       10408 | 615.45    |
+-------------+-----------+
327 rows in set

MySQL SUM与H*ING

您可以使用H*ING子句中在SUM函数中来根据特定条件过滤结果。例如,您可以计算总订单量,只能选择总金额大于60000的订单。如下查询语句 -

SELECT orderNumber,
       FORMAT(SUM(quantityOrdered * priceEach),2)
FROM orderdetails
GROUP BY orderNumber
H*ING SUM(quantityOrdered * priceEach) > 60000
ORDER BY SUM(quantityOrdered * priceEach);

执行上面查询语句,得到以下结果 -

mysql> SELECT orderNumber,
       FORMAT(SUM(quantityOrdered * priceEach),2)
FROM orderdetails
GROUP BY orderNumber
H*ING SUM(quantityOrdered * priceEach) > 60000
ORDER BY SUM(quantityOrdered * priceEach);
+-------------+--------------------------------------------+
| orderNumber | FORMAT(SUM(quantityOrdered * priceEach),2) |
+-------------+--------------------------------------------+
|       10310 | 61,234.67                                  |
|       10287 | 61,402.00                                  |
|       10165 | 67,392.85                                  |
+-------------+--------------------------------------------+
3 rows in set

MySQL SUM与LIMIT

假设您想要计算products表中前十名最昂贵的产品的总和,可以提出以下查询:

SELECT SUM(buyprice)
FROM products
ORDER BY buyprice DESC
LIMIT 10;

执行上面查询语句,得到以下结果 -

mysql> SELECT SUM(buyprice)
FROM products
ORDER BY buyprice DESC
LIMIT 10;
+---------------+
| SUM(buyprice) |
+---------------+
| 5983.47       |
+---------------+
1 row in set

它不起作用,因为具有SUM函数的SELECT语句只返回一行,LIMIT子句约束要返回的行数无效。

要解决此问题,请使用以下子查询:

SELECT FORMAT(SUM(buyprice),2) FROM
(SELECT buyprice
FROM products
ORDER BY buyprice DESC
LIMIT 10) price;

执行上面查询语句,得到以下结果 -

+-------------------------+
| FORMAT(SUM(buyprice),2) |
+-------------------------+
| 958.71                  |
+-------------------------+
1 row in set

上面语句是怎么运行的?

  • 子查询选择十大价格最高的产品。
  • 外部查询计算从子查询返回的前10个价格最高的产品的总和。

MySQL SUM与NULL

如果没有匹配的行,则SUM函数返回NULL值。 有时,您希望SUM函数返回0而不是NULL。 在这种情况下,可以使用COALESCE函数。COALESCE函数接受两个参数,如果第一个参数为NULL,则返回第二个参数,否则返回第一个参数; 参考以下查询语句:

SELECT COALESCE(SUM(quantityOrdered * priceEach),0)
FROM orderdetails
WHERE productCode = 'S1_212121';

执行上面查询语句,得到以下结果 -

mysql> SELECT COALESCE(SUM(quantityOrdered * priceEach),0)
FROM orderdetails
WHERE productCode = 'S1_212121';
+----------------------------------------------+
| COALESCE(SUM(quantityOrdered * priceEach),0) |
+----------------------------------------------+
| 0.00                                         |
+----------------------------------------------+
1 row in set

MySQL SUM与连接语句

您可以使用SELECT JOIN语句中的SUM函数根据另一个表中的值指定的条件来计算表中的值的总和。

例如,要计算取消订单金额的总和,请使用以下语句:

SELECT FORMAT(SUM(quantityOrdered * priceEach),2) loss
FROM orderdetails
INNER JOIN orders USING(orderNumber)
WHERE status = 'Cancelled'

【相关推荐:mysql视频教程】

以上就是mysql怎么实现字段求和的详细内容,更多请关注其它相关文章!


# 可以利用  # 搜狗站内搜索seo  # 电商网站优化怎么报价  # 北京网站推广前景  # 渝北爱采购seo  # 沾化外贸响应式网站推广  # 搜索引擎优化网站标题  # 湖北关键词 排名优化  # 杜桥网站优化公司  # 加大网银营销推广力度  # seo每天更新多少为佳  # mysql  # 所示  # 请使用  # 运算符  # 第一个  # 总金额  # 可以使用  # 您可以  # 子句  # 镜像  # 字段求和 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 可米酷漫画在线阅读入口_ 可米酷漫画官网直达链接  火狐浏览器如何刷新修复浏览器 火狐浏览器“重置Firefox”功能详解  漫蛙manwa2网页版书签同步链接_漫蛙manwa多设备登录入口  哔哩哔哩在线观看入口 B站官网免费进入  Retrofit根路径POST请求:@POST("/") 的应用与解析  《饿了么》拼好饭点外卖教程2025  照片整理的黄金法则是怎样的? 理解“收集-筛选-归档-备份”四步流程  《领英》查看屏蔽名单方法  一点万象签到领积分指南  4399正版网页版入口高清直达链接  优化长HTML属性值:SonarQube警告与实用策略  PHP utf8_encode 字符编码转换陷阱与解决方案  背部总是隐隐作痛怎么回事 背痛如何改善  《磁力猫》最好用的磁官网  Win10如何关闭操作中心通知 Win10免打扰设置全攻略【清爽】  苹果电脑如何快速截图并编辑 苹果电脑截屏标注快捷操作  《撕歌》会员开通方法  《procreate》绘制渐变效果教程  J*aScript调试技巧_性能分析与内存快照  高德地图怎么查看未来行程规划_高德地图未来行程规划查看方法  C++ bind函数使用教程_C++参数绑定与函数适配器的应用  《海豚家》注销账号方法  抖音小程序怎么开通?小程序开通条件是什么?  mysql怎么导入sql文件_mysql导入sql文件的方法与技巧  《淘票票》添加到苹果钱包教程  Django模型动态关联检查:高效管理复杂关系  Golang如何使用gRPC拦截器实现日志收集_Golang gRPC拦截器日志收集实践  mysql如何管理数据库账户_mysql数据库账户管理技巧  谷歌浏览器如何查找和删除恶意软件 谷歌浏览器内置安全清理工具使用教程  荣耀Magic7拍照夜景噪点处理_荣耀Magic7相机优化  从J*a应用程序中导出MySQL表数据的技术指南  iCloud官方网站 iCloud网页版在线登录入口  mysql如何限制远程访问_mysql远程访问限制方法  Chart.js 教程:自定义插件实现图表与图例间距调整  PPT页面尺寸怎么修改 PPT自定义幻灯片大小与方向设置【教程】  汽水音乐在线听歌网页版 汽水音乐在线听歌网页版入口  AO3中文版手机快速通道_AO3最新稳定链接更新  雨课堂官网在线登录 网页版雨课堂登录链接  知音漫客官网首页入口_知音漫客热门漫画推荐  mysql中外键约束如何使用_mysql FOREIGN KEY操作  AI图层蒙版怎么用_AI图层蒙版应用技巧与设计实例  PSD转AI文件的简单方法  快手网页版官方访问 快手网页版页面在线打开  向往的生活小游戏启动处_向往的生活小游戏立即启动  《杖剑传说》食谱大全  抖音号显示企业机构号是什么意思?企业机构号申请条件是什么?  如何用Golang优化微服务间请求性能_Golang 微服务请求性能优化方法  《书耽》更换手机号方法  《美篇》取消会员自动续费方法  《画加》约稿流程 

 2021-12-31

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.