为了账号安全,请及时绑定邮箱和手机立即绑定

从一组相同的组中选择平均值,另一组的最大值用于几列

从一组相同的组中选择平均值,另一组的最大值用于几列

PHP
守候你守候我 2023-04-15 14:19:06
我一直在努力为一组相同的 fix_ids 值选择一个平均值,在另一列上有最大值,最终有人帮助了我,我得到了这段代码select fix_id     , timestamp     , avg(age)  from t where age > 0    and timestamp =   (select max(t2.timestamp)     from t t2    where t2.fix_id = t.fix_id)group by fix_id;这完全符合预期,但是,我需要为多个列选择相同的平均值,我想知道是否有一种方法可以在一个查询中执行此操作。我可以avg(age),avg(height)但是由于我跳过了年龄列高度为 0 的行,因此这些行将丢失。
查看完整描述

1 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

使用条件聚合:


select fix_id, timestamp,

       avg(case when age > 0 then age end) as avg_age,

       avg(height) as avg_height

from t

where timestamp = (select max(t2.timestamp) from t t2 where t2.fix_id = t.fix_id)

group by fix_id;


查看完整回答
反对 回复 2023-04-15
  • 1 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信