Я пытаюсь удалить весь блок из набора данных, когда минимальное требование (x < 15) выполняется в одной из реплик (см. Примеры данных ниже).Специфические критерии исключения MySQL
+------+-------+------------+----+
| id | block | repitition | x |
+------+-------+------------+----+
| 5223 | 1 | 1 | 15 |
| 5223 | 1 | 2 | 17 |
| 5223 | 1 | 3 | 16 |
| 5223 | 2 | 1 | 14 |
| 5223 | 2 | 2 | 15 |
| 6238 | 2 | 1 | 18 |
| 6238 | 2 | 2 | 20 |
| 6238 | 2 | 3 | 12 |
| 6238 | 2 | 4 | 21 |
| 7575 | 1 | 3 | 13 |
| 7575 | 1 | 4 | 21 |
| 7575 | 1 | 5 | 21 |
+------+-------+------------+----+
мне помогли в этом отношении уже со следующим:
delete t1
from your_table t1
inner join
(
select id, block
from your_table
group by id, block
having sum(x < 15) > 0
) t2 on t1.id = t2.id and t1.block = t2.block
И это прекрасно работает. Я хотел бы знать, если я могу сделать то же самое, но только если x < 15 - это первое повторение в блоке - независимо от номера повторения.
Поэтому я хотел бы, чтобы запросить таблицу, и пусть это только удалять строки 4, 5, 10, 11, 12. текущая формула будет также удалять строки 6, 7, 8 и 9.
Большое спасибо Тони Хопкинсону! Это потрясающе! – wernerbrand