我有以下查询:
select * from events order by Source, DateReceived
这给了我这样的东西:
我想得到我标记为蓝色的结果 - >来自相同来源的两个或多个相同的ErrorNr-Entries后面。
所以我必须将每行与之前的行进行比较。我怎样才能做到这一点?
这就是我想要的:
答案 0 :(得分:2)
在桌子上按分区选项应用行号:
SELECT
ROW_NUMBER() OVER(PARTITION BY Source ORDER BY datereceived)
AS Row,
* FROM events
你可以运行一个(最大)有>结果集的行号为1个选项。或者,如果您需要详细信息,请应用相同的查询,将行nuber扣除1。 然后你可以在源和行号上建立一个连接,如果错误nr是相同的,那么你有一个命中。
答案 1 :(得分:1)
您可以按如下方式使用分区。
select * from(select
*,row_number()over(partition by source,errornr order by Source, DateReceived) r
from
[yourtable])t
where r>1
您可以在外部选择中指定列名称。