You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Zheng Shao (JIRA)" <ji...@apache.org> on 2017/10/03 21:59:01 UTC

[jira] [Updated] (HIVE-1128) Let max/min handle complex types like struct

     [ https://issues.apache.org/jira/browse/HIVE-1128?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Zheng Shao updated HIVE-1128:
-----------------------------
    Description: 
A lot of users are interested in doing "arg_min" and "arg_max". Basically, return the value of some other columns when one column's value is the max value.

The following is an example usage when this is done:

{code}
SELECT department, max(struct(salary, employee_name))
FROM compensations
GROUP BY department;

SELECT department, max(struct(salary, employee_name)).col2 AS employee_name
FROM compensations
GROUP BY department;

SELECT department, sen.col1 as salary, sen.col2 as employee_name
FROM (
    SELECT department, max(struct(salary, employee_name)).col2 AS sen
    FROM compensations
    GROUP BY department
) tmp

{code}


  was:
A lot of users are interested in doing "arg_min" and "arg_max". Basically, return the value of some other columns when one column's value is the max value.

The following is an example usage when this is done:

{code}
SELECT department, max(struct(salary, employee_name))
FROM compensations;
{code}



> Let max/min handle complex types like struct
> --------------------------------------------
>
>                 Key: HIVE-1128
>                 URL: https://issues.apache.org/jira/browse/HIVE-1128
>             Project: Hive
>          Issue Type: Improvement
>    Affects Versions: 0.6.0
>            Reporter: Zheng Shao
>            Assignee: Zheng Shao
>             Fix For: 0.6.0
>
>         Attachments: HIVE-1128.1.sh, HIVE-1128.2.patch
>
>
> A lot of users are interested in doing "arg_min" and "arg_max". Basically, return the value of some other columns when one column's value is the max value.
> The following is an example usage when this is done:
> {code}
> SELECT department, max(struct(salary, employee_name))
> FROM compensations
> GROUP BY department;
> SELECT department, max(struct(salary, employee_name)).col2 AS employee_name
> FROM compensations
> GROUP BY department;
> SELECT department, sen.col1 as salary, sen.col2 as employee_name
> FROM (
>     SELECT department, max(struct(salary, employee_name)).col2 AS sen
>     FROM compensations
>     GROUP BY department
> ) tmp
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)