以下是同样的概念
select column1 ,
,max(named_struct('column3',column3,'column2',column2)).column2
,max(column3) as column3
from mytable
group by column1
;
+---------+---------+---------+
| column1 | column2 | column3 |
+---------+---------+---------+
| A | Z | 11 |
+---------+---------+---------+
select column1
,max(struct(column3,column2)).col2 as column2
,max(column3) as column3
from mytable
group by column1
;
的一些变化
+---------+---------+---------+
| column1 | column2 | column3 |
+---------+---------+---------+
| A | Z | 11 |
+---------+---------+---------+
select column1
,col.column2
,col.column3
from (select column1
,max(named_struct('column3',column3,'column2',column2)) as col
from mytable
group by column1
) t
;
+---------+---------+---------+
| column1 | column2 | column3 |
+---------+---------+---------+
| A | Z | 11 |
+---------+---------+---------+
HM。真的没有更优雅/更短的解决方案吗?我是在想。 – simple
row_number的第二个解决方案很好,第一个解决方案 - 不是。 –
@DuduMarkovitz ..当我写第一个查询时,我正在过度思考..我删除它,因为它可能不适用于Hive。 –