mysql - 如何对表中每个唯一的最后一个值求和

标签 mysql sum

我想对表中每个唯一的最后一个值的公斤总数进行求和。

我目前的表格看起来像这样

|----|-----------|----------|----------|----------|---------------|
| id | productId | amountKg | amountSt | location | datetimeStamp |
|----|-----------|----------|----------|----------|---------------|
| 12 | 19        | 201      | 0        | loc1     | 2019-12-21    |
| 13 | 19        | 35       | 0        | loc2     | 2019-12-22    |  <---
| 14 | 19        | 400      | 0        | loc1     | 2019-12-23    |  <---
|----|-----------|----------|----------|----------|---------------|

我有这个 SQL 查询

SELECT SUM(amountKg) FROM (SELECT amountKg FROM storage GROUP BY location ORDER BY id ASC) t;

当我运行此查询时,我得到结果 236 我想要的结果是435,14和13的和(表中的箭头)

感谢任何帮助

最佳答案

首先查找每个位置具有最新行的 ID,然后将它们相加:

select sum(s.amountKg)
from storage s
  join ( 
    select location, max(id) as id
    from storage
    group by location
  ) as latest on latest.id=s.id

参见DB-Fiddle

关于mysql - 如何对表中每个唯一的最后一个值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59438354/

相关文章:

mysql sum() 没有给出正确的十进制值

php - 多个表中的查询中的多个 sun 函数

matlab - Matlab sum : The expression to the left of the equals sign is not a valid target for an assignment

jquery - 如何根据输入类型 number*$(value) 求和

mysql - 将数据从一个表输入到另一个表

MySql:根据排名增加从表中选择

mysql - 我可以在 Where 子句中使用 "virtual column"吗?

mysql - 我想向客户销售固定数量的产品。 spring jpa如何管理并发?

Mysql 表进入 Elastic 搜索

r - 创建用户事件数据的汇总表