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

合并具有相同主键的行并计算新值的平均值

合并具有相同主键的行并计算新值的平均值

Go
Smart猫小萌 2021-10-09 16:18:04
我有一张如下所示的表格: 如上图所示,主键由 intervalstart 和 edgeid 组成。我现在想要做的是导入具有相同间隔开始和相同 edgeid 的记录,但具有不同的 avgvelocity、measurementcount 和 vehiclecount 值。但由于我想避免表中出现重复条目,我想将这些记录与重复键合并,并计算 avgvelocity、measurementcount 和 vehiclecount 列的平均值。我已经找到了名为 MERGE 的 PostgreSQL 命令,但我无法理解如何执行此操作。非常感谢您!
查看完整描述

1 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

您需要查看MySQL GROUP BY或PostgresSQL GROUP BY子句才能执行您想要的操作。


SELECT intervalstart,edgeid, AVG(avgvelocity), AVG(measurementcount), AVG(vehiclecount) 

FROM mytable GROUP BY intervalstart, edgeid

所有记录都按 intervalstart 和 edgeid 分组(“合并”),然后您可以使用聚合函数(例如 AVG)对非分组列进行平均。


在 MySQL 中(我不知道 PostgresSQL) - 如果你想要“day”列 - 你可以使用 ANY_VALUE 函数来获取它,它将从其中一行中获取一个值。


SELECT intervalstart,edgeid, ANY_VALUE(day), AVG(avgvelocity), AVG(measurementcount), AVG(vehiclecount) 

FROM mytable GROUP BY intervalstart, edgeid


查看完整回答
反对 回复 2021-10-09
  • 1 回答
  • 0 关注
  • 197 浏览
慕课专栏
更多

添加回答

举报

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