2017-08-02 9 views
1

私は次のクエリを持っている:注文データセットとデータセットを比較するにはどうすればいいですか?

select * from events order by Source, DateReceived 

これは私にこのような何か与える:

enter image description here

を、私は私が青いマークの結果を取得したい - 二つ以上が存在する場合>を同一のErrorNr-Entriesを互いに背後に置きます。

だから、すべての行と前の行とを比較する必要があります。それをどうすれば実現できますか?あなたは以下のようにしてパーティションを使用することができます

enter image description here

答えて

2

は、あなたのテーブルの上にオプションでパーティション上の行番号を適用します。

SELECT 
    ROW_NUMBER() OVER(PARTITION BY Source ORDER BY datereceived) 
    AS Row, 
* FROM events 

あなたは、結果セットの行数に> 1のオプションを持つ(max)を実行することができます。または、詳細が必要な場合は、1と行の核を差し引く同じクエリを適用します。 ソースと行番号を結合することができます。エラーnrが同じであればヒットします。

1

は、これは私が取得したいものです。

select * from(select 
*,row_number()over(partition by source,errornr order by Source, DateReceived) r 
from 
[yourtable])t 
where r>1 

外側の選択項目に列名を指定できます。

関連する問題