簡體   English   中英

根據另一個表中組的最小值在表中設置值

[英]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.

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