我有一张如下所示的表格: 如上图所示,主键由 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
- 1 回答
- 0 关注
- 197 浏览
添加回答
举报
0/150
提交
取消