Я пытаюсь сделать то, что кажется простой операцией SQL, но я просто не могу найти правильный синтаксис, чтобы сделать это быстро. Я использую SQLite.
Основная проблема заключается в том, что у меня есть таблица, первичный ключ которой (objUid, time). Он содержит столбцы objUid, time и frame. Для целей этого вопроса frame - непрозрачное значение.
Я хотел бы извлечь для каждого объекта objUid:
objUid, minTime, значение кадра в minTime, maxTime, значение кадра в maxTime.
... и я бы хотел сделать это как можно быстрее.
У меня есть это прямо сейчас, и это работает, но если я уберу операторы "NATURAL JOIN" (что означает, что я не получаю столбец "frame"), все будет примерно вдвое быстрее.
SELECT * FROM (
SELECT * FROM (
SELECT objUid, min(time) as minTime, max(time) as maxTime FROM motion GROUP BY objUid
) NATURAL JOIN (
SELECT objUid, time as minTime, frame as minFrame FROM motion
)
) NATURAL JOIN (SELECT objUid, time as maxTime, frame as maxFrame FROM motion)
Есть идеи?
Спасибо!