Есть таблица до 1 млрд строк. Данные в них повторяются.
Требуется скопировать их в другую таблицу:
create table MyDstData
(
[PKField1] varchar(30) not null,
[PKField2] varchar(30) not null,
[PKField3] varchar(30) not null,
[BegTime] datetime not null,
[EndTime] datetime not null,
[Field1] varchar(30),
[Field2] varchar(30),
[Field3] varchar(30),
[Field4] varchar(30),
primary key clustered ([PKField1],[PKField2],[PKField3])
)
сгруппировав по [PKField1],[PKField2],[PKField3]. Если с [BegTime]/[EndTime] всё понятно: min() и max(),
то в [Field1],[Field2],[Field3],[Field4] нужно сложить самые свежие данные (где [EndTime] = max([EndTime])).
Как это правильно сделать?
create table MySrcData ( [PKField1] varchar(30) not null, [PKField2] varchar(30) not null, [PKField3] varchar(30) not null, [BegTime] datetime not null, [EndTime] datetime not null, [Field1] varchar(30), [Field2] varchar(30), [Field3] varchar(30), [Field4] varchar(30), )
Требуется скопировать их в другую таблицу:
create table MyDstData
(
[PKField1] varchar(30) not null,
[PKField2] varchar(30) not null,
[PKField3] varchar(30) not null,
[BegTime] datetime not null,
[EndTime] datetime not null,
[Field1] varchar(30),
[Field2] varchar(30),
[Field3] varchar(30),
[Field4] varchar(30),
primary key clustered ([PKField1],[PKField2],[PKField3])
)
сгруппировав по [PKField1],[PKField2],[PKField3]. Если с [BegTime]/[EndTime] всё понятно: min() и max(),
то в [Field1],[Field2],[Field3],[Field4] нужно сложить самые свежие данные (где [EndTime] = max([EndTime])).
Как это правильно сделать?