Mysql分组求平均值
select * from group_avg_test;±--------±------+| groupId | value |±--------±------+|1 |1 ||1 |2 ||2 |3 ||5 |3 ||5 |6 ||5 |6 ||3 |2 |±--------±------+select group
·
select * from group_avg_test;
select groupId,avg(value) from (
select groupId,value from (
select groupId, value,@num := if(@currGroupId = groupId, @num + 1, 1) as row_number,
@currGroupId := groupId from(select @num := 0, @currGroupId := '') as i,
group_avg_test order by groupId, value desc
) as r where r.row_number <= 2
) as t group by groupId;
这样就求出了每个组前2个最大的value的平均值
更多推荐
已为社区贡献1条内容
所有评论(0)