2012-03-29 3 views
3

У меня есть улей стол что-то вроде этого:Hive: Поиск максимального значения в группе

create external table test(
    test_id string, 
    test_name string, 
    description string, 
    clicks int, 
    last_referred_click_date string 
) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
STORED AS TEXTFILE LOCATION '{some_location}'; 

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

Я делаю что-то вроде этой функции

insert overwrite table test partition(weekending='{input_date}') 
    select s.test_id,s.test_name,s.description,max(click_date), 
    sum(t.click) as clicks 
    group by s.test_id,s.test_name,s.description order by clicks desc; 

ли не более() работает для строк? Мой click_date имеет формат'yyyy-mm-dd 'и является строковым типом данных? Если нет, что я могу сделать здесь? UDF?

ответ

1
SELECT s.test_id, 
     s.test_name, 
     s.description, 
     MAX(CAST(last_referred_click_date as DateTime)), 
     sum(t.clicks) as Total_Clicks 
FROM test s 
WHERE s.test_id=1 
GROUP BY s.test_id,s.test_name,s.description 
ORDER BY clicks desc; 
Смежные вопросы