Hive Query с несколькими столбцами в Select и группировка по одному столбцу - PullRequest
1 голос
/ 21 марта 2019

У меня есть примерное изображение набора данных и ожидаемый результат. Что может быть лучшим способом достижения такого результата в наборе данных с миллиардом записей. Должны ли мы использовать промежуточные временные таблицы или в 1 Query.

Req: - Получить все записи для SN, которые имеют более 2 записей в таблице и показать только записи, где цена составляет 100

enter image description here

CREATE TABLE test(
  `sn` string, 
  `itemA` string, 
  `itemB` string, 
  `price` int)

insert into table test values ('1','A','D',100),('1','B','E',100),('1','C','F',200),('2','A','D',100),('2','C','F',200);

1 Ответ

0 голосов
/ 21 марта 2019

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

select t.*
from (select t.*, count(*) over (partition by sn) as cnt
      from test t
     ) t
where cnt > 2 and price = 100;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...