我有一个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
我搜索了几天,我找到的只是计算重复次数的技巧。我确定关键在于测试,位置和设备列的组合,但我缺乏技能。感谢您提供的任何帮助。
答案 0 :(得分: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)
上创建一个索引,以便快速工作。