У меня есть таблица, как показано ниже
year int
month int
symbol string
company_name string
sector string
sub_industry string
state string
avg_open double
avg_close double
avg_low double
avg_high double
avg_volume double
Поле, начинающееся с avg_
, относится к среднему значению за месяц за год. Мне нужно найти для каждого сектора год, в котором среднее значение avg_close
является самым низким.
Я пытался сделать что-то вроде ниже
SELECT sector, year FROM
(
SELECT sector, year, RANK() OVER (ORDER BY s2.yearly_avg_close) AS RANK FROM
( SELECT year,sector, AVG(avg_close) AS yearly_avg_close FROM stock_summary GROUP BY sector, year) s2
) s1
WHERE
s1.RANK = 1;
Но это печать только одного сектора и года, как показано ниже
Telecommunications Services 2010
Я новичок в улье и играю вокруг с некоторыми игрушечными схемами. Может кто-нибудь сообщить мне, каким должен быть правильный способ решения этой проблемы?
Версия Hive - 1.1.0