Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 合并具有相同主键的行并计算新值的平均值_C#_Mysql_Database_Postgresql_Merge - Fatal编程技术网

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

C# 合并具有相同主键的行并计算新值的平均值,c#,mysql,database,postgresql,merge,C#,Mysql,Database,Postgresql,Merge,我有一张如下所示的桌子: 如上图所示,主键由intervalstart和edgeid组成。我现在要做的是导入具有相同intervalstart和相同edgeid的记录,但avgvelocity、measurementcount和vehiclecount的值不同。 但是,为了避免表中出现重复条目,我希望用一个重复的键合并这些记录,并计算avgvelocity、measurementcount和vehiclecount列的平均值 我已经找到了名为MERGE的PostgreSQL命令,但是我还没有弄

我有一张如下所示的桌子:

如上图所示,主键由intervalstart和edgeid组成。我现在要做的是导入具有相同intervalstart和相同edgeid的记录,但avgvelocity、measurementcount和vehiclecount的值不同。 但是,为了避免表中出现重复条目,我希望用一个重复的键合并这些记录,并计算avgvelocity、measurementcount和vehiclecount列的平均值

我已经找到了名为MERGE的PostgreSQL命令,但是我还没有弄清楚如何做。
提前非常感谢

您需要查看or子句以执行所需操作

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