sql:用group by分组后,每组随意取一个记录?

2024年11月17日 19:02
有2个网友回答
网友(1):

select 楼栋id,楼栋名称,管理人员联系方式,层高,面积
from (
select 楼栋id,楼栋名称,管理人员联系方式,row_number() over(partition by 楼栋id order by 层高 desc) rn,层高,SUM(建筑面积) OVER(PARTITION BY 楼栋id) as 面积
from dbo.进阶视图_楼栋对用房单位
) a
where rn=1;

网友(2):

如果想写一个对所有表都能适用的自定义函数,有些困难,但如果只针对某一个表,可以用一个输入参数表示是哪个字段,在函数内部用IF .... else 来判断