У меня есть база данных sqlite3 с одной таблицей с именем orig:
CREATE TABLE orig (sdate date, stime integer, orbnum integer);
Что я хочу сделать, это выбрать первую дату / время для каждого orbnum. Единственная проблема заключается в том, что stime считает время очень неловким целым числом.
Предполагая шестизначное число, первые две цифры показывают час, 3./4. показывают минуты, а последние две цифры показывают секунды. Таким образом, значение 12345 равно 1:23:45, а значение 123456 равно 12: 34: 56.
Я подумал, что сделаю это, используя два вложенных оператора соединения / группы, но почему-то я не могу заставить его работать должным образом. Вот что у меня так далеко:
select s.orbnum, s.sdate, s.stime
from (
select t.orbnum, t.sdate, t.stime, min(t.sdate) as minsdate
from (
select orbnum, sdate, stime, min(stime) as minstime
from scia group by orbnum, sdate
) as t inner join orig as s on s.stime = t.minstime and s.sdate = t.sdate and s.orbnum = t.orbnum
) as d inner join scia as s on s.stime = d.stime and s.sdate = minsdate and s.orbnum = d.orbnum
where s.sdate >= '2002-08-01' limit 0,200;
Это ошибка, которую я получаю:
Error: no such column: t.orbnum
Я уверен, что это просто какая-то глупая ошибка, но на самом деле я совершенно новичок в SQL ...
Любая помощь очень ценится:)
Edit:
После исправления очевидной опечатки запрос выполняется - но возвращает пустой набор результатов. Тем не менее, таблица содержит ~ 10 лет данных, с примерно 12 орбн в день и примерно 4-5 раз на орбнум. Так что я предполагаю, что в логике запроса есть какая-то ошибка ...