我有一个包含38列的配置单元查询,只有一列使用聚合函数。但是我只需要用列名1,2而不是all对它进行分组。如何做到这一点?例如,我需要的是,
SELECT 1 ,2 ,3 ,4 ,5 ,MAX(6) FROM table_x GROUP BY 1,2
qhhrdooz1#
它不符合 group by 定义。当你分组时 X columns ,其他 Y columns 必须聚合以适应现有组。
group by
X columns
Y columns
l7mqbcuq2#
选择所需的所有列,并仅使用列名1、2将其分组,使用分析函数。使用以下查询:
select col1,col2.....col38, max(col6) over(partition by col1,col2 order by col1) as max_val from tablename
oxiaedzo3#
使用 row_number() 功能
row_number()
select * from ( SELECT 1,2,3,4,5,6,row_number() over(partition by 1,2 order by 6 desc) as rn FROM table_x )A where rn=1
3条答案
按热度按时间qhhrdooz1#
它不符合
group by
定义。当你分组时X columns
,其他Y columns
必须聚合以适应现有组。l7mqbcuq2#
选择所需的所有列,并仅使用列名1、2将其分组,使用分析函数。
使用以下查询:
oxiaedzo3#
使用
row_number()
功能