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

我有一张如下所示的表格: 

http://img4.mukewang.com/6161505200010bd509060246.jpg

如上图所示,主键由 intervalstart 和 edgeid 组成。我现在想要做的是导入具有相同间隔开始和相同 edgeid 的记录,但具有不同的 avgvelocity、measurementcount 和 vehiclecount 值。但由于我想避免表中出现重复条目,我想将这些记录与重复键合并,并计算 avgvelocity、measurementcount 和 vehiclecount 列的平均值。

我已经找到了名为 MERGE 的 PostgreSQL 命令,但我无法理解如何执行此操作。非常感谢您!


Smart猫小萌
浏览 198回答 1
1回答

陪伴而非守候

您需要查看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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go