2017-02-21 26 views
1

У меня есть запрос, в котором мне требуется, чтобы номер строки начинался с max (row_number) другой таблицы. Как я могу это сделать, учитывая, что улья не позволяют вложенные запросы.Функция номера строки, начиная с максимального номера строки другой таблицы в Улье

Так что мой запрос что-то вроде этого:

Insert Overwrite Table ABC 
Select row_number() over (order by Population_Count desc) + select (max(country_id))+1 as country_id, 
country_name from ABC_temp; 

Так, если таблица ABC_temp имеет country_id отделки на 26, row_count В таблице АВС() должна начинаться с 27

ответ

1
Insert Overwrite Table ABC 

Select  row_number() over (order by Population_Count desc) 
      + max(country_id) over() 

from  ABC_temp 
; 
0

You может попробовать это:

INSERT overwrite TABLE abc 
SELECT (temp.m + row_number() over (
            ORDER BY population_count DESC)), country_name 
FROM abc_temp , 
    (SELECT max(country_id) AS m 
    FROM abc_temp) TEMP ; 
+0

Это работает для меня: вниз голосования принять Вы можете попробовать это: ВСТАВИТЬ перезапись ТАБЛИЦА а SELECT (temp.m + row_number() над ( ORDER BY POPULATION_COUNT DESC)), COUNTRY_NAME ИЗ abc_temp JOIN (SELECT MAX (COUNTRY_ID) AS м ОТ abc_temp) TEMP ON TRUE –