Select 更高的价值

Select higher value

我有这个数据集:

Var1  t  avg
AA   1  0.02
AA   0  0.21
BB   1  0.05
BB   0  0.20
CC   1  0.10
CC   0  0.14

构建如下

Proc sql;
    Select 
    Var1,
    t,
    Avg(var2) as avg
    From my_data
    Group by 1,2
    Order by 1,2; quit;

我的预期输出是

    AA   0  0.21
    BB   0  0.20
    CC   0  0.14

你能给我一些提示吗? 我一直在使用 max 函数来做这件事。我会尝试将问题分为两步:第一个 select 每个组(AA、BB 和 CC)的较高值,然后我将 select 这些值之间的最大值。不知道这个做法对不对

如果您只想要平均值最高的一行,请使用 top:

Select top 1 Var1, t, Avg(var2) as avg
From my_data
Group by 1,2
Order by avg desc;

如果您想要此 per t,则使用 qualifyrow_number():

select Var1, t, Avg(var2) as avg
from my_data
group by 1,2
qualify row_number() over (partition by var1 order by avg desc) = 1;