Форум: "Базы";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];
ВнизЗапрос удаления повторяющихся данных на SQL Найти похожие ветки
← →
bigcrush (2005-06-27 16:07) [0]Есть таблица:
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:14) [1]timestamp в MSSQL зарезирвированое имя
← →
Zacho © (2005-06-27 16:18) [2]2 bigcrush :
А может, просто не плодить "повторяющиеся" записи ? Первичный ключ сделать или UNIQUE CONSTRAINT или что там в MS SQL и MySQL есть..
← →
stone © (2005-06-27 16:18) [3]Во-первых, определись с СУБД MSSQL или MySQL, т.к. синтаксис может отличаться
Во-вторых, какое у таблицы ключевое поле?
← →
Anatoly Podgoretsky © (2005-06-27 16:20) [4]Zacho © (27.06.05 16:18) [2]
В MS SQL именно так и есть.
← →
MOA-2 (2005-06-27 16:31) [5]Может, так:?
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) [6]
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) [7]
DELETE d
FROM [data] d
WHERE d.timestamp <
(SELECT MAX(d1.[timestamp]) FROM [data] d1 WHERE (d1.[dev_time] = d.[dev_time]))
Что-то с паролем :(
← →
Zacho © (2005-06-27 16:36) [8]Anatoly Podgoretsky © (27.06.05 16:20) [4]
Я это и подозревал :)
← →
Anatoly Podgoretsky © (2005-06-27 16:48) [9]Zacho © (27.06.05 16:36) [8]
Ну так поддерживает SQL-92
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c