У меня сложный вопрос по SQL.
Можем ли мы обновить столбец в запросе SELECT? Пример:
Рассмотрим эту таблицу:
|ID |SeenAt |
----------------
|1 |20 |
|1 |21 |
|1 |22 |
|2 |70 |
|2 |80 |
Мне нужен запрос SELECT, который дает для каждого идентификатора, когда он был замечен в первый раз. И когда это видели «снова»:
|ID |Start |End |
---------------------
|1 |20 |21 |
|1 |20 |22 |
|1 |20 |22 |
|2 |70 |80 |
|2 |70 |80 |
Во-первых, оба столбца Start
и End
будут иметь одинаковое значение, но когда появится вторая строка с тем же ID
, нам нужно обновить ее предшественницу, чтобы присвоить End
новое значение SeenAt
. Мне удалось создать столбец Start
, я даю минимальное значение SeenAt
на ID
всем идентификаторам. Но я не могу найти способ каждый раз обновлять столбец End
.
Не обращайте внимания на двойники, у меня есть другие столбцы, которые меняются в каждой новой строке.
Кроме того, я работаю в Impala, но могу использовать Oracle.
Я надеюсь, что я был достаточно ясен. Спасибо
min()
иmax()
. Или, возможно, метод tabibitosan, если вы ищете последовательные группы идентификатора (например, что, если новая строка для идентификатора = 1 был добавлен с Seeat 30. Будет ли это отдельная группа или она будет принадлежать первой группе с min = 20 и max = 30? - person Boneist   schedule 30.07.2019End
? Я полагаю, что они должны быть20,21,22,70,80
, не так ли? - person Barbaros Özhan   schedule 30.07.2019