我想要一个 SQL Server 版本的 PostgreSQL 的 distinct on ()
。
a b
----
1 1
1 2
2 2
2 1
3 3
select distinct on (a) *
from my_table
a b
----
1 1
2 2
3 3
在SQL Server中,我可以这样做:
select a, min(b) -- or max it does not matter
from my_table
group by a
但是,在存在许多列且查询为即席查询的情况下,这样做非常繁琐。有没有简单的方法可以做到这一点?
DISTINCT ON
的语义替代,但是在性能方面,CTE 远远落后于 Postgres 扩展。 - gavenkoa