汇总表,删除其数据,将摘要插入原始表

时间:2013-04-11 12:18:57

标签: sql sql-server

我知道这必须是一个简单的,但我想做的一切都是通用的,所以很难创建谷歌术语以获得我想要的东西!

基本上我有一个表用于我的数据和一个每30秒输入一次新数据的工作。此数据已按相应字段分组,也按日期分组。

由于存在大量数据,其中大部分与表中已有的数据相似,我希望对表本身进行总结。显然,一种方法是创建第二个表,每30秒执行以下操作:

==> group by on the primary table and insert into secondary table 
==> delete primary table 
==> insert secondary table into primary table 
==> delete secondary table

现在我知道有一种更简单的方法可以做到这一点,而无需创建另一个表和一堆作业以及相关的开销,但我无法使用谷歌找到它!

1 个答案:

答案 0 :(得分:0)

您将数据和数据摘要保存在同一个表中吗?你能更准确地了解桌子的结构吗?

我认为你应该有两个表(一个用于数据,另一个用于聚合)或在表中有一个'type'字段,说明它是一个简单的数据行还是一个聚合的结果。

如果您选择“类型”字段,则可以执行类似

的操作
INSERT into mytable (a,b,c,type)
    select count(a),MAX(b),c,'aggregate' from mytable 
    where type='line' GROUP BY c

delete from mytable where type='line'