0

次のクエリは、Sybase SQL で機能しました: -

select id, version from local_tbl
group by id
having version < max(version)

最大を除くすべてのIDとバージョンを取得します。

Postgres 9.1 で同じクエリを実行すると、次のエラー メッセージが表示されます。

Error: ERROR: column "local_tbl.version" must appear in the GROUP BY clause or be used in an aggregate function

IDのすべてのバージョンが必要なため、バージョンをグループに入れることはできません。

どうすれば同等のことができますか?

4

1 に答える 1

1

試す:

SELECT id, version
FROM (
      select id, 
             version, 
             max(version) OVER (PARTITION BY id) as max_version
      from local_tbl ) sub
WHERE version < max_version
于 2013-01-31T08:55:07.507 に答える