我在SQL Server 2005中有一组包含时间序列数据的表。因此有一个日期时间字段和一组值。使用t-sql选择删除重复值的数据集
CREATE TABLE [dbo].[raw_data](
[Time] [datetime] NULL,
[field1] [float] NULL,
[field2] [float] NULL,
[field3] [float] NULL
)
的时间字段是不幸的是没有一个独特的密钥,似乎有很多的日期时间值的多(不相同)项 - 因此DISTINCT不起作用。
我想从这些表中选择数据以插入新的,正确索引的表格中。
因此,我想要一个选择查询,它将为每个时间返回一个单一行条目的数据集。只要选择一个(并且只有一个),我不关心在给定时间内选择哪组值。
这些表格很多,所以我没有时间查找和手动清除重复值,因此标准的HAVING COUNT(*)> 1查询不适用。也有太多的重复,只是完全忽略这些时间值。
任何想法?我正在考虑基于PARTITION BY的某种类型的游标,但是超出了这一点。
如果你想有一个基础的T-SQL,您可以使用: 选择T. * 从dbo.rawdata为T,(选择时间,分钟(filed1)作为C从 dbo.rawdata组按时间)为Ta 其中t.time = ta.time 和t.field1 = ta.field1 – Ice 2010-10-22 22:40:36