2017-11-13 4 views
0

私は以下のテーブルを持っています。イメージ内のレコードのセットは、同じ "name"と "id"を持ちます。私はこのデータセットから最新のレコードを取得するために、 "ID"を要素としてMax(ID)を使用します。私の目標は、最新の「サイズ」を報告することです。これをどうやって行うのですか? "Workbook_id"を使用してwhere条件を使用したくないのは、重複した名前のデータセットに他のレコードがたくさんあるからです。IDに基づいて最新のレコードを照会

enter image description here

+0

ここをクリックしてください:https://stackoverflow.com/questions/tagged/greatest-n-per-group+postgresql –

+0

http://meta.stackoverflow.com/questions/285551/why-mayi-i- 285557と受け入れられた答え –

+0

** no ** *最新*があります。なぜこのテーブルにプライマリキーが定義されていないのですか? – wildplasser

答えて

0

これはスピットボールの少しですが、私はこれがあなたが求めているものであると考えている:明らか

with workbookz as (
    select 
    w.*, 
    max (w.id) over (partition by w.workbook_id) as max_id 
    from workbooks w 
) 
select 
    id, workbook_id, name, repository_url, size, revision 
from workbookz 
where id = max_id 

を、あなたのテーブルがそのあるものは何でもへworkbooks変更を命名されていない場合適切な。

+0

Hamboneありがとうございます。これはうまくいく! – user3677714

関連する問題