, если у меня есть очень простая таблица:SQLite - где существуют две записей с разным значением в определенном столбце, только выбрать определенную запись
id outcome position
-- ------- --------
1 TRUE 01
2 TRUE 01
2 FALSE 01
2 TRUE 02
где и идентификатор и позиции могут матчи через несколько записей; в этом случае я хотел бы выбрать только результат FALSE, т. е. когда один и тот же идентификатор и позиция отображаются в нескольких записях. например, id = 1 имеет только 1 запись, поэтому здесь истинно TRUE или FALSE. Последняя запись имеет id = 2 (так же, как и 2-я и 3-я записи), но позиция = 02, поэтому также верно TRUE или FALSE. однако, поскольку записи 2 и 3 имеют одинаковый идентификатор и позицию, я хочу только выбрать запись с ложным результатом. это должно быть результатом: c
id outcome position
-- ------- --------
1 TRUE 01
2 FALSE 01
2 TRUE 02
Как это сделать? Я знаю, что я мог бы создать таблицу, а затем сделать что-то вроде
delete from mytable
where exists
(select a.* from mytable a
join mytable b
on a.id = b.id and a.position = b.position
where a.outcome = TRUE)
однако я предпочел бы избежать того, чтобы создать таблицу и удаления записей. Я бы предпочел просто выбрать записи, которые я хочу в первом экземпляре.
Я не вижу, как ваши объяснения совпадают с результатами. –
Привет, Гордон - в основном, когда id и позиция одинаковы в двух разных записях, значение FALSE в столбце результатов должно переопределять запись с TRUE значением. Поэтому я бы хотел только выбрать запись, где результат FALSE, учитывая начальное условие. – brucezepplin
Редактировать вопрос, чтобы уточнить – brucezepplin