Улей: Нахождение максимального значения в группе - PullRequest
5 голосов
/ 29 марта 2012

У меня есть таблица ульев что-то вроде этого:

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; 

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

1 Ответ

2 голосов
/ 30 марта 2012
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; 
...