簡體   English   中英

合並具有相同主鍵的行並計算新值的平均值

[英]Merge rows with the same primary key and calculate average for new value

我有一個表格,如下所示: 在此處輸入圖片說明

如上圖所示,主鍵由intervalstart和edgeid組成。 我現在要執行的操作是導入具有相同intervalstart和相同edgeid的記錄,但是具有不同的平均速度,measurementcount和vehiclecount值。 但是,由於我想避免表中出現重復條目​​,因此我想將這些記錄與重復鍵合並,然后計算平均速度,measurementcount和Vehiclecount列的平均值。

我已經找到了稱為MERGE的PostgreSQL命令,但是我無法理解如何做到這一點。 提前非常感謝您!

您需要查看MySQL GROUP BYPostgresSQL 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM