2017-08-02 167 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個選項。或者,如果您需要詳細信息,請使用與1相同的查詢來扣除行編號。 然後,您可以對源編號和行編號進行連接,並且如果錯誤編號相同,則您有一個匹配項。

1

您可以通過如下使用分區。

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

您可以在外部選擇中指定您的列名稱。