SQL结果组由2

cch*_*son 0 sql sql-server

我有一个查询,它给了我以下结果

FILE    EVENT   AMOUNT
File1   AP      26.96
File1   AP      26.96
File1   AP      26.96
Run Code Online (Sandbox Code Playgroud)

关于如何将结果分组2以便我可以拥有的任何想法

FILE    EVENT   AMOUNT
File1   AP      26.96
File1   AP      26.96
Run Code Online (Sandbox Code Playgroud)

如果我的原始查询返回4个结果,

FILE    EVENT   AMOUNT
File1   AP      26.96
File1   AP      26.96
File1   AP      26.96
File1   AP      26.96
Run Code Online (Sandbox Code Playgroud)

我想拥有

FILE    EVENT   AMOUNT
File1   AP      26.96
File1   AP      26.96
Run Code Online (Sandbox Code Playgroud)

执行上述操作的任何SQL关键字?

谢谢

Tar*_*ryn 6

如果你想返回2行,那么我会看一下使用类似的窗口函数row_number().您可以对3列上的数据进行分区,然后将其过滤为仅返回2行:

select [file], [event], [amount]
from
(
  select [file], [event], [amount],
    rn = row_number() over(partition by [file], [event], [amount]
                           order by [file])
  from dbo.yourtable
) d
where rn <= 2;
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo