Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос на выборку без дубликатов строк  [new]
Серг Д
Member

Откуда: Владимир
Сообщений: 83
Здравствуйте!
помогите с запросом на выборку строк из одной таблицы без дублирующих записей.
MSSQL 2005

CREATE TABLE [dbo].[TABL_Exchanger_SPRAV_TMP](
[ID] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
[Column_01] [nvarchar](max) NULL,
[Column_02] [nvarchar](max) NULL,
[Column_03] [nvarchar](max) NULL,
[DateStart] [datetime] NULL,
[DateEnd] [datetime] NULL,
CONSTRAINT [PK_TABL_Exchanger_SPRAV_TMP] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]


SELECT [ID]
,[Column_01]
,[Column_02]
,[Column_03]
,[DateStart]
,[DateEnd]
FROM [TABL_Exchanger_SPRAV_TMP] a

ID[Column_01][Column_02][Column_03] [DateStart] [DateEnd]
1 1 2 3 2009-11-13 14:58:12.120 2009-11-13 14:58:12.120
2 1 2 3 2009-11-13 14:58:12.963 2009-11-13 14:58:12.963
15 2 2 3 2009-11-13 14:58:18.823 2009-11-13 14:58:18.823
16 2 2 3 2009-11-13 14:58:18.997 2009-11-13 14:58:18.997
17 2 2 3 2009-11-13 14:59:15.043 2009-11-13 14:59:15.043


Надо получить:
ID[Column_01][Column_02][Column_03] [DateStart] [DateEnd]
1 1 2 3 2009-11-13 14:58:12.120 2009-11-13 14:58:12.120
17 2 2 3 2009-11-13 14:59:15.043 2009-11-13 14:59:15.043
т.е. исключить старые 'новые'(по полю DateStart) дублирующие по полям [Column_01] И [Column_02] И [Column_03] строки.
оставить только первые записи по дате.
Поле ID не отражает последовательности строк т.к. ключевым в этом вопросе является [DateStart].

Спасибо.
13 ноя 09, 15:36    [7926753]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку без дубликатов строк  [new]
Серг Д
Member

Откуда: Владимир
Сообщений: 83
Серг Д,

Извиняюсь....
Надо получить:
ID[Column_01][Column_02][Column_03] [DateStart] [DateEnd]
1 1 2 3 2009-11-13 14:58:12.120 2009-11-13 14:58:12.120
15 2 2 3 2009-11-13 14:58:18.823 2009-11-13 14:58:18.823
13 ноя 09, 15:38    [7926773]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку без дубликатов строк  [new]
Серг Д
Member

Откуда: Владимир
Сообщений: 83
Серг Д
Серг Д,

Извиняюсь....
Надо получить:
ID[Column_01][Column_02][Column_03] [DateStart] [DateEnd]
1 1 2 3 2009-11-13 14:58:12.120 2009-11-13 14:58:12.120
15 2 2 3 2009-11-13 14:58:18.823 2009-11-13 14:58:18.823


Рельно в таблице 25 столбцов по которым надо проверять дубликаты.
Кол-во строк>700000
13 ноя 09, 15:39    [7926785]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку без дубликатов строк  [new]
iljy
Member

Откуда:
Сообщений: 8711
Серг Д,

а поиском воспользоваться?
удалить дубли
13 ноя 09, 15:45    [7926836]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку без дубликатов строк  [new]
Серг Д
Member

Откуда: Владимир
Сообщений: 83
Использую конструкцию

SELECT min([ID]) As ID
,[Column_01]
,[Column_02]
,[Column_03]
.....
,[Column_25]
,min([DateStart]) as DateStart
,min([DateEnd]) as DateEnd
FROM [dbo].[TABL_Exchanger_SPRAV_TMP] a
GROUP BY
[Column_01]
,[Column_02]
,[Column_03]
................................................
,[Column_25]
Правда группировка идет по 25 полям тектовым, что наверно не есть гуд.
Пока ничего не нашел по поиску в форуме... наверно плохо искал...
13 ноя 09, 16:39    [7927355]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку без дубликатов строк  [new]
iljy
Member

Откуда:
Сообщений: 8711
Серг Д,

вы по моей ссылке ходили? там куча топиков по этой теме! и например в пятом (Убрать дубли) есть несколько вариантов решения
13 ноя 09, 16:44    [7927400]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку без дубликатов строк  [new]
Серг Д
Member

Откуда: Владимир
Сообщений: 83
iljy,

Да, использование временных таблиц не хотелось бы.....
13 ноя 09, 16:54    [7927505]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на выборку без дубликатов строк  [new]
iljy
Member

Откуда:
Сообщений: 8711
Серг Д,

https://www.sql.ru/forum/actualthread.aspx?tid=637641&hl=%f3%e4%e0%eb%e8%f2%fc+%e4%f3%e1%eb%e8#6797261
где тут временные таблицы?
13 ноя 09, 17:03    [7927618]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить