我有一个针对 100 个字段的表按 3 个字段分组的查询。如何在没有连接的情况下将另外 97 个字段放入选择中?
这是我的声明:
select a,b,c,max(d) as max_d
from mytable
group by a,b,c;
我知道以下查询有效,但它非常繁重:(
select mytable.* from
(
select a,b,c,max(d) as max_d
from mytable
group by a,b,c
) uni
join mytable myt (uni.a=mytable.a AND uni.b=mytable.b AND uni.c=mytable.c AND uni.max_d=mytable.d);
谢谢!!
最佳答案
使用窗口函数:
select t.*
from (select t.*, max(d) over (partition by a, b, c) as max_d
from mytable t
where d = max_d;
关于sql - Impala/SQL 如何将所有其他字段放在 group by 语句中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52718722/