如何使用条件选择每组的第一行

时间:2016-06-20 04:55:05

标签: sql sql-server sql-server-2008

我有一个名为 DealOffers:

的表格

input table

  

我想从每个的dealIds 组中只选择一条记录   价格最低

预期输出应如下所示:

enter image description here

1 个答案:

答案 0 :(得分:2)

你可以这样做。但是,如果您最终必须大规模地执行此操作,则应考虑性能。

select *
from (
    select *,
        SeqNum = row_number() over(
            partition by DealId
            order by Price)
    from DealOffers) do
where do.SeqNum = 1;