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

zpqajqem  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(275)

我有一张如下所示的table:

如上图所示,主键由intervalstart和edgeid组成。我现在要做的是导入具有相同intervalstart和相同edgeid的记录,但是avgvelocity、measurementcount和vehiclecont的值不同。但是为了避免表中出现重复条目,我希望用一个重复的键合并这些记录,并计算avgvelocity、measurementcount和vehiclecount列的平均值。
我已经找到了名为merge的postgresql命令,但是我还不知道该怎么做。提前多谢了!

rur96b6h

rur96b6h1#

您需要查看mysql group by或postgresql group by子句来做您想做的事情。

SELECT intervalstart,edgeid, AVG(avgvelocity), AVG(measurementcount), AVG(vehiclecount) 
FROM mytable GROUP BY intervalstart, edgeid

所有记录都按intervalstart和edgeid分组(“合并”),然后可以在未分组的列上使用聚合函数(如avg for average)。
在mysql中(我不知道postgresql)-如果您想要“day”列-您可以使用any\u value函数获得它,它将从其中一行获得一个值。

SELECT intervalstart,edgeid, ANY_VALUE(day), AVG(avgvelocity), AVG(measurementcount), AVG(vehiclecount) 
FROM mytable GROUP BY intervalstart, edgeid

相关问题