我需要在表格中创建一个包含现有行总和的新行,并删除已汇总的列。此时删除不是优先事项,但肯定需要。
t UL1 UL2 UL3 PL1 PL2 PL3 P Q1 Q2 Q3 CosPhi1 CosPhi2 CosPhi3 i
2015-08-19 12:26:56 394.7 396.3 393.2 10.7 -180.9 46.5 -123.7 10.4 8.7 13.7 0.9 1.0 1.0 0
2015-08-19 12:26:55 394.8 396.4 393.4 10.6 -180.7 47.0 -123.2 12.0 8.8 13.9 0.8 1.0 1.0 0
2015-08-19 12:26:54 394.7 396.2 393.1 11.6 -180.5 46.5 -122.5 9.6 9.4 13.9 1.0 1.0 1.0 0
表格如下所示。每秒插入一次数据,表格包含数百万行。由于我不需要如此高的分辨率用于历史用途,我想以15分钟的间隔将它们相加并移除" old"数据。 需要求和的列是PL1,PL2,PL3和P.t可以是15分钟间隔内的任何时间。
我希望看起来像这样。
t PL1 PL2 PL3 P i
2015-08-19 12:26:56 33.0 -540.9 135.5 -375.7 0
我不确定如何对此进行查询,我们非常感谢您的帮助。
答案 0 :(得分:0)
insert into table(PL1,PL2,PL3,p,i)
select sum(PL1),SUM(PL2),sum(PL3),sum(p),sum(i)
您需要添加一个存储布尔值的列。像is_summation_row
之类的东西,每当添加总和时插入1,以便稍后可以使用
delete from tblName where is_summation_row=1
然后执行插入。
答案 1 :(得分:0)
你想在一个过程中混合两件事(或者三件),这很危险,很难测试,并且会产生很多负担。
我建议你采用更好的,经过验证的方法。
UL1
,UL2
,UL3
a.s.o)。INSERT ... SELECT
),或者它可以在应用程序端执行计算,您可以选择更适合您的公式和应用程序的工作流程。如果可能,将脚本安装为cron作业,每15分钟左右运行一次。它还可以删除处理过的数据,以保持旧表的纤薄,或者您可以保留它们,您决定。