![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос удаления повторяющихся данных на SQL [MSSQL, MySQL]
bigcrush © (2005-06-27 16:07:00)Есть таблица:
data(
timestamp integer,
type integer,
dev_time date,
dev_data varchar(100)
)
Значения поля timestamp не повторяются.
Точно известно, что если есть 2 записи с одинаковыми значеними dev_time, то у них значения полей dev_data совпадают.
Как на SQL удалить повторяющиеся записи? Если есть 3 записи с равными значениями dev_time и dev_data, удалить 2 из них.
Anatoly Podgoretsky (2005-06-27 16:48:00) [1]Zacho © (27.06.05 16:36) [8]
Ну так поддерживает SQL-92
Zacho (2005-06-27 16:36:00) [2]Anatoly Podgoretsky © (27.06.05 16:20) [4]
Я это и подозревал :)
MOA (2005-06-27 16:35:00) [3]
DELETE d
FROM [data] d
WHERE d.timestamp <
(SELECT MAX(d1.[timestamp]) FROM [data] d1 WHERE (d1.[dev_time] = d.[dev_time]))
Что-то с паролем :(
MOA (2005-06-27 16:35:00) [4]
DELETE d
FROM [data] d
WHERE d.timestamp <
(SELECT MAX(d1.[timestamp]) FROM [data] d1 WHERE (d1.[dev_time] = d.[dev_time]))
Что-то с паролем :(
MOA-2 (2005-06-27 16:31:00) [5]Может, так:?
DELETE d
FROM [data] d
WHERE d.timestamp <
(SELECT MAX(d1.[timestamp]) FROM [data] d1 WHERE (d1.[dev_time] = d.[dev_time]))
Удачи!
Anatoly Podgoretsky (2005-06-27 16:20:00) [6]Zacho © (27.06.05 16:18) [2]
В MS SQL именно так и есть.
Zacho (2005-06-27 16:18:00) [7]2 bigcrush :
А может, просто не плодить "повторяющиеся" записи ? Первичный ключ сделать или UNIQUE CONSTRAINT или что там в MS SQL и MySQL есть..
stone (2005-06-27 16:18:00) [8]Во-первых, определись с СУБД MSSQL или MySQL, т.к. синтаксис может отличаться
Во-вторых, какое у таблицы ключевое поле?
Anatoly Podgoretsky (2005-06-27 16:14:00) [9]timestamp в MSSQL зарезирвированое имя