Как удалить дублированные значения, которые не находятся в диапазоне от таблицы MySQL?MySql

Форум по Mysql
Ответить
Anonymous
 Как удалить дублированные значения, которые не находятся в диапазоне от таблицы MySQL?

Сообщение Anonymous »

У меня есть таблица Mysql, как это: < /p>

Код: Выделить всё

CREATE TABLE metric_value (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
metric_id int(10) unsigned DEFAULT NULL,
value decimal(17,2) unsigned NOT NULL,
created timestamp NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (id),
KEY created (created)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
Теперь я хочу удалить все строки, которые содержат то же значение , что и предыдущая строка (например, следующий нижний идентификатор). Кроме того, значение не следует считать дубликатом, если оно хранилось слишком давно (скажем, 1 день назад, настраивается). Я пытался играть с Delete и Inner Join, но это либо удаляет слишком много, либо слишком мало рядов. Это, кажется, не удаляет все дубликаты, например: < /p>

Код: Выделить всё

DELETE t2 FROM metric_value t1
INNER JOIN metric_value t2 ON
(t1.metric_id = t2.metric_id OR (t1.metric_id IS NULL AND t2.metric_id IS NULL))
AND t1.value = t2.value
AND t2.created > t1.created + INTERVAL 1 DAY;
Можно ли это сделать с помощью sql?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ysql-table
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»