mysql sum() 求和函数和TIMESTAMPDIFF时间差函数相结合的用法

博客介绍了SUM函数的语法,表达式可以是数值字段或公式。给出多个使用示例,如计算全体员工薪金总额、业务净收入、销售佣金总额等,还提及与GROUP BY一起使用,以及利用SUM函数求设备占用时长总和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SUM函数的语法是:

SELECT SUM(expression )
FROM tables
WHERE predicates;

表达式可以是一个数值字段或公式。
简单的例子
例如,你可能想知道合并全体员工的薪金总额美元以上,其薪酬是25,000/年

SELECT SUM(salary) as "Total Salary"
FROM employees
WHERE salary > 25000;

与Example using DISTINCT一起用

SELECT SUM(DISTINCT salary) as "Total Salary"
FROM employees
WHERE salary > 25000;

使用公式的示例
在SUM函数中的表达并不需要一个单一的领域。您也可以使用一个公式。例如,您可能需要为业务的净收入。总收入减去总支出纯收入计算。

SELECT SUM(income - expenses) as "Net Income"
FROM gl_transactions;

您可能还需要在SUM函数执行数学运算。例如,您可能会确定佣金总额为销售总额的10%。

SELECT SUM(sales * 0.10) as "Commission"
FROM order_details;

与Example using GROUP BY
在某些情况下,你将被要求使用SUM函数的第一个集团。
例如,您还可以使用SUM函数返回的部门名称和总销售额(相关部门)。

SELECT department, SUM(sales) as "Total sales"
FROM order_details
GROUP BY department;

求每一个设备占用时长

SELECT TIMESTAMPDIFF(MINUTE,start_time,stop_time) as fenzhong FROM `sniffer`  where shop_id=10588 and mobile_mac='0006f4e5f2c0'

在这里插入图片描述

再求和,利用sum函数

SELECT SUM(TIMESTAMPDIFF(MINUTE,start_time,stop_time)) as fenzhong FROM `sniffer`  where shop_id=10588 and mac='fcecdab41136'

在这里插入图片描述

### MySQLTIMESTAMPDIFF函数用法 `TIMESTAMPDIFF` 是 MySQL 提供的一个日期/时间函数,用于计算两个日期或时间之间的差异,并以指定的时间单位返回结果。其基本语法如下: ```sql TIMESTAMPDIFF(unit, datetime1, datetime2) ``` 其中: - `unit` 表示要返回的结果所使用的单位,支持的单位包括:`FRAC_SECOND`, `SECOND`, `MINUTE`, `HOUR`, `DAY`, `WEEK`, `MONTH`, `QUARTER`, `YEAR`[^1]。 - `datetime1` `datetime2` 是需要比较的两个日期或时间值。 #### 计算时间差的例子 以下是几个具体的例子来展示如何使用 `TIMESTAMPDIFF` 函数: 1. **按秒数计算时间差** 使用 `SECOND` 单位来获取两个具体时间点之间的秒数差异: ```sql SELECT TIMESTAMPDIFF(SECOND, '2022-04-23 15:15:00', NOW()) AS diff_in_seconds; ``` 2. **按分钟数计算时间差** 如果想得到两段时间间的分钟数差异,则可以设置 `unit` 参数为 `MINUTE`: ```sql SELECT TIMESTAMPDIFF(MINUTE, '2017-01-01 08:00:00', '2017-01-01 08:55:33') AS diff_in_minutes; ``` 3. **结合其他日期函数一起使用** 还能与其他内置日期函数配合使用,比如 `CURRENT_DATE()` 或者 `NOW()` 来动态对比当前时间固定时间戳: ```sql SELECT TIMESTAMPDIFF(DAY, '2022-04-23', CURRENT_DATE()) AS days_since_2022_04_23; ``` 这些查询语句展示了不同场景下利用 `TIMESTAMPDIFF` 的方法[^3]。 #### 实际应用场景 该函数广泛应用于各种实际业务逻辑之中,例如统计用户活跃天数、分析订单完成耗时等场合都非常实用[^2]。 ```sql -- 假设有一个表 orders (id INT, created_at DATETIME, completed_at DATETIME),我们可以这样写 SQL 查询每笔订单所需时间(小时) SELECT id, TIMESTAMPDIFF(HOUR, created_at, completed_at) AS processing_time_hours FROM orders WHERE completed_at IS NOT NULL; ``` 以上就是关于 MySQL 中 `TIMESTAMPDIFF` 函数的一些介绍及其典型应用案例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值