Analytic functions
Analytic functions, available since Hive 0.11.0, are a special group of functions that scan the multiple input rows to compute each output value. Analytic functions are usually used with OVER
, PARTITION BY
, ORDER BY
, and the windowing specification. Different from the regular aggregate functions used with the GROUP BY
clause that is limited to one result value per group, analytic functions operate on windows where the input rows are ordered and grouped using flexible conditions expressed through an OVER PARTITION
clause. Though analytic functions give aggregate results, they do not group the result set. They return the group value multiple times with each record. The analytic functions offer great flexibility and functionalities than the regular GROUP BY
clause and make special aggregations in Hive easier and powerful. The syntax for the analyze function is as follows:
Function (arg1,..., argn) OVER ([PARTITION BY <...>] [ORDER BY <....>] [<window_clause...