AWS Афина sql запрос, чтобы получить разные данные - PullRequest
0 голосов
/ 31 января 2020

Ниже приведены данные в листе Excel. Эти данные хранятся в корзине S3. Эти данные постоянно обновляются с помощью данных потоков DynamoDB с использованием лямбда-функции.

rollno | status    |  name | place
----------------------------------
   1   | pending   |   x   | london 
   1   | approved  |   x   | london
   1   | progress  |   x   | london
   1   | completed |   x   | london
   2   | pending   |   y   | delhi
   2   | approved  |   y   | delhi
   2   | progress  |   y   | delhi
   3   | pending   |   z   | newyork
   3   | approved  |   z   | newyork 
   4   | pending   |   a   | seattle

Как вы можете видеть, только статус меняется с pending -> approved -> progress -> completed на rollno и все остальные значения одинаковы.

Таблица создана в AWS Афина. Моя цель состоит в том, чтобы запросить Афину и получить результат в следующем формате (получение сведений с последним статусом).

rollno | status    |  name | place
----------------------------------
   1   | completed |   x   | london
   2   | progress  |   y   | delhi
   3   | approved  |   z   | newyork
   4   | pending   |   a   | seattle

Я новичок в SQL. Могу ли я получить помощь при написании запроса SQL, чтобы получить желаемый результат. Я пытался, но не мог найти способ сделать это в SQL.

1 Ответ

1 голос
/ 31 января 2020

Если у вас есть столбец update_time, вы можете группировать и получать последнюю запись. Здесь я рассмотрел ролльно группе. если вы хотите, вы можете группировать, используя имя и место также

     select rolno,status,name,place from table_T where rollno||updated_time
     in
     (
     select rollno||max(updated_time) from table_T group by rollno
     )
...