簡體   English   中英

如何在MySQL中向表中添加小計?

[英]How can I add subtotal to table in MySQL?

假設我的表如下所示:

id    count    sub_total
1     10       NULL
2     15       NULL
3     10       NULL
4     25       NULL

如何更新此表格如下所示?

id    count    sub_total
1     10       10
2     15       25
3     10       35
4     25       60 

我可以在應用程序層中輕松完成這項工作。 但是我想學習如何在MySQL中做到這一點。 我一直在嘗試使用SUM(CASE WHEN...大量變體SUM(CASE WHEN...和其他分組無濟於事。

如果您的id字段是連續的並且正在增長,則相關子查詢是一種方式:

select *, (select sum(count) from t where t.id <= t1.id) 
from t t1

或作為連接:

select t1.id, t1.count, sum(t2.count)
from t t1
join t t2 on t2.id <= t1.id
group by t1.id, t1.count
order by t1.id

要更新表(假設列sub_total已存在):

update t 
join (
  select t1.id, sum(t2.count) st
  from t t1
  join t t2 on t2.id <= t1.id
  group by t1.id
) t3 on t.id = t3.id
set t.sub_total = t3.st;

示例SQL Fiddle顯示更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM