У меня есть данные, как это:Как сгруппировать следующие строки, не уникальное значение
table1
_____________
id way time
1 1 00:01
2 1 00:02
3 2 00:03
4 2 00:04
5 2 00:05
6 3 00:06
7 3 00:07
8 1 00:08
9 1 00:09
Я хотел бы знать, в какой промежуток времени я был на какой путь:
desired output
_________________
id way from to
1 1 00:01 00:02
3 2 00:03 00:05
6 3 00:06 00:07
8 1 00:08 00:09
Я пытался использовать функцию окна:
SELECT DISTINCT
first_value(id) OVER w AS id,
first_value(way) OVER w as way,
first_value(time) OVER w as from,
last_value(time) OVER w as to
FROM table1
WINDOW w AS (
PARTITION BY way ORDER BY ID
range between unbounded preceding and unbounded following);
Что я получаю:
ID way from to
1 1 00:01 00:09
3 2 00:03 00:05
6 3 00:06 00:07
И это не правильно, потому что на пути 1 меня не было с 00:01 до 00:09. Есть ли возможность сделать раздел в соответствии с порядком, означает группировку только следующих атрибутов, которые равны?
Как «путь» '' '00:03 - 00: 05' и' путь'' 3'' 00: 06-00: 07'? Это очень запутанно. – JNevill
Это было неправильно, я исправил это. Спасибо. – telemachos
Вы делаете это похоже на 'id' и' time', оба будут строго восходящим параллельно. Это так? Ты уверен? Если 'id' является столбцом' serial', это, скорее всего, ***, а не *** всегда случай. Это означало бы, что минимальный 'id' и минимальный' time' для одного временного фрагмента может быть в разных строках. Что должно быть в результате? –