Используйте запрос выбора для добавления значений в столбец улья

#sql #hive #max #hiveql #sql-view

#sql #улей #макс #hiveql #sql-просмотр

Вопрос:

У меня есть таблица AAA с 5 столбцами, скажем, A, B, C, D, E. Я хочу добавить столбец F в AAA, чтобы все строки F содержали максимальное значение E. Пример :

ТАБЛИЦА AAA

 A|B|C|D|E 
__________
1|2|3|4|5
2|3|4|5|6
3|4|5|6|7
  

Добавьте столбец F в AAA. Итоговая таблица должна иметь что-то вроде этого.

 A|B|C|D|E|F 
___________
1|2|3|4|5|7 
2|3|4|5|6|7 
3|4|5|6|7|7 
  

Ответ №1:

Вы можете использовать оконные функции:

 select t.*, max(e) over() as f
from aaa t
  

Я бы не рекомендовал хранить эту производную информацию, потому что ее сложно поддерживать (всякий e раз, когда значение изменяется в какой-либо строке, вам может потребоваться пересчитать столбец while f ).

Альтернативой может быть создание представления:

 create view v_aaa as
select t.*, max(e) over() as f
from aaa t
  

Комментарии:

1. На самом деле столбцы в таблице AAA имеют несколько типов данных. Таким образом, невозможно будет получить наибольшее значение. В столбце E есть поле даты, и я хочу, чтобы максимальное значение этого поля даты было равно значениям столбца F.