Sybase和Postgres之间有所不同

时间:2013-01-31 08:50:34

标签: postgresql postgresql-9.1

以下查询在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。

我该如何做同等的事?

1 个答案:

答案 0 :(得分: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