我有一个表,其中包含多个readings_miu_id,每个都有多个RSSI读数(RSSI也是该字段的名称)。因此,我目前有一个数据表,其中包含许多列,但与此对话相关的两个相关内容看起来像这样:

readings_miu_id  RSSI
===============  ====
11011032         -90
11011032         -81
11011032         -62
11011032         -84
11011032         -86
11010084         -84
11010084         -86
11010084         -87


等等。

我最初的计划是更改每个读数具有相同的readings_miu_id的记录的RSSI值,并与该读数的平均RSSI值相同(除了单独的RSSI会被该miu的平均RSSI代替外,其外观应与上面相同),并且然后为每个不同的readings_miu_id只拉一条记录(我很确定我可以使用select top 1 type语句来做。)但是我在弄清楚第一部分时遇到了问题。我尝试过的sql语句似乎应该关闭:

UPDATE analyzedCopy2 as A
SET analyzedCopy2.RSSI = Avg(RSSI)
where readings_miu_id = A.readings_miu_id




UPDATE analyzedCopy2 as A
SET RSSI = Avg(select RSSI from analyzedCopy2
    where readings_miu_id = A.readings_miu_id)
WHERE readings_miu_id = A.readings_miu_id;


请帮助!

最佳答案

不确定为什么要更新记录。
如果您只想平均阅读,可以这样做:

SELECT readings_miu_id, AVG(RSSI)
FROM analyzedCopy2
GROUP BY readings_miu_id

关于sql - 在SQL更新中使用Avg(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/893824/

10-11 21:39