#mysql
#mysql
Вопрос:
У меня есть база данных MySQL 5.5 с таблицей, которая выглядит примерно так:
id test location measurement unit device retest
1 1 1 -2405.5 mV 1 null
2 1 2 856 mV 1 null
3 1 3 956.4 mV 1 null
4 2 1 -805.5 mV 1 null
5 2 2 1456 mV 1 null
6 2 3 22.4 mV 1 null
7 1 1 -805.5 mV 1 null
8 1 2 456 mV 1 null
9 1 3 456.4 mV 1 null
10 2 1 -805.5 mV 1 null
11 2 2 456 mV 1 null
12 2 3 456.4 mV 1 null
13 1 1 -805.5 mV 2 null
14 1 2 856 mV 2 null
15 1 3 756.4 mV 2 null
16 2 1 -805.5 mV 2 null
17 2 2 456 mV 2 null
18 2 3 456.4 mV 2 null
19 1 1 -805.5 mV 3 null
20 1 2 456 mV 3 null
21 1 3 456.4 mV 3 null
22 2 1 -805.5 mV 3 null
23 2 2 456 mV 3 null
24 2 3 456.4 mV 3 null
Я хотел бы, чтобы моя таблица отражала количество повторных тестов устройства:
id test location measurement unit device retest
1 1 1 -2405.5 mV 1 0
2 1 2 856 mV 1 0
3 1 3 956.4 mV 1 0
4 2 1 -805.5 mV 1 0
5 2 2 1456 mV 1 0
6 2 3 22.4 mV 1 0
7 1 1 -805.5 mV 1 1
8 1 2 456 mV 1 1
9 1 3 456.4 mV 1 1
10 2 1 -805.5 mV 1 1
11 2 2 456 mV 1 1
12 2 3 456.4 mV 1 l
13 1 1 -805.5 mV 2 0
14 1 2 856 mV 2 0
15 1 3 756.4 mV 2 0
16 2 1 -805.5 mV 2 0
17 2 2 456 mV 2 0
18 2 3 456.4 mV 2 0
19 1 1 -805.5 mV 3 0
20 1 2 456 mV 3 0
21 1 3 456.4 mV 3 0
22 2 1 -805.5 mV 3 0
23 2 2 456 mV 3 0
24 2 3 456.4 mV 3 0
Я искал несколько дней, и все, что я нашел, были методы подсчета количества дубликатов. Я уверен, что ключ лежит в комбинации столбцов test, location и device, но мне не хватает навыков. Благодарим вас за любую помощь, которую вы хотели бы оказать.
Ответ №1:
SELECT *,
EXISTS
(
SELECT NULL
FROM mytable mr
WHERE mr.test = m.test
AND mr.location = m.location
AND mr.device = m.device
AND mr.id < m.id
) AS retest
FROM mytable m
Создайте индекс на (test, location, device, id)
, чтобы это работало быстро.
Комментарии:
1. Спасибо за вашу помощь. Сначала это работало не так, как ожидалось, но оказалось, что это возможность исправить проблемы с моим набором данных. Спасибо!