im довольно новый для SQLite, поэтому задает этот вопрос!SQLite удаляет строки на основе нескольких столбцов
Мне нужно удалить строки в таблице, чтобы у меня было самое раннее появление столбца каждого уникального значения в столбце X (цвет) на основе столбца Y (время).
В принципе у меня есть это:
тест | цвет | время (ы)
1 | Желтый | 8
1 | Красный | 6
1 | Желтый | 10
два | Красный | 4
Что я хочу, чтобы удалить строки, так что это выглядит следующим образом:
тест | цвет | время (ы)
1 | Желтый | 8
два | Красный | 4
Заранее спасибо!
РЕДАКТИРОВАТЬ: Чтобы быть яснее, мне нужно сохранить самое раннее происхождение во времени, когда каждый цвет произошел независимо от теста.
EDIT: Я могу выбрать строки я хочу, чтобы при этом:
выберите * от (выберите * от COL_TABLE порядка по времени по алфавиту) х группы по цвету;
, который производит желаемый результат, но я хочу удалить то, чего нет в результате выбора.
EDIT: Следующие обработанная благодаря @JimmyB:
DELETE FROM COL_TABLE WHERE EXISTS (SELECT * FROM COL_TABLE t2 WHERE COL_TABLE .colour = t2.colour AND COL_TABLE .test = t2.test AND COL_TABLE .time < t2.time)
И как определить первую запись? –
@juergend 'MIN (время)' похоже. – JimmyB
'DELETE FROM my_table WHERE EXISTS (SELECT 1 FROM my_table t2 WHERE my_table.colour = t2.colour AND my_table.test = t2.test И my_table.time
JimmyB