[英]How can I UPDATE a table based on another table, using values from groups of rows?
[英]Set values in table based on minimum from groups in another table
我正在嘗試使用SQL在pgAdmin中創建一個新表,由於我是一個新手,所以遇到了問題。 我的目標是創建一個新表(稱為元數據),該表基於來自另一個表(稱為導航)的分組來匯總值。
說導航表是這樣的:
VIDEO LATITUDE
vid1 50
vid1 51
vid1 52
vid2 49
vid2 51
我需要創建一個元數據表來匯總導航(以及其他一些數據); 像這樣的東西:
VIDEO minLATITUDE LINK
vid1 50 http://foo
vid2 49 http://bar
我一直在嘗試SQL代碼(基於此問題 ):
UPDATE f1188hw.YTmeta as a
SET minLat = b.lat
FROM f1188hw.YTmeta
INNER JOIN (SELECT video, min(lat) AS lat
from f1188hw.nav
group by video) AS b
ON a.video = b.video;
pgAdmin返回:
ERROR: invalid reference to FROM-clause entry for table "a"
SQL state: 42P01
Hint: There is an entry for table "a", but it cannot be referenced from this part of the query.
Character: 158
我猜想我遺漏了一些明顯的東西,但是還沒有通過搜索和閱讀pgAdmin文檔來找到它。
采用
UPDATE f1188hw.YTmeta as a
SET a.minLat = b.lat
FROM (SELECT video, min(lat) AS lat
from f1188hw.nav
group by video) AS b
WHERE a.video = b.video;
要么
UPDATE f1188hw.YTmeta
SET minLat = (SELECT min(lat)
from f1188hw.nav
where f1188hw.YTmeta.video = video
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.