2016-05-06 4 views
0

ヘルプデスクシステム用のデータセットがあります。レポートを作成しており、各顧客の最大接触試行回数をカウントできる必要があります。顧客はいつでも複数のチケットを開くことができます。カスタマーあたりの値の最大発生数をカウントします

これは私が現在、上記

select * 
    from reporting 
    order by Job_id, seq_id, REason 
 
SEQ_ID job_id  EVENT_Name  reason      account_number  
1  70449  Created          10341307 
2  70449  Available         10341307 
3  70449  Allocated         10341307 
4  70449  Rescheduled  Failed Contact - Attempt 1 10341307 

を使用していたコードが出力例です。

失敗したコンタクト試行回数は、試行回数を増やして3回まで発生する可能性があります。顧客が失敗した連絡先を持っている場合 - 試行3私はその試行を数えたいだけですが、それを実行するものはありません。

どうすればいいですか?

+0

あなたが望む結果は何ですか?連絡先の前に失敗した連絡先または*すべて*を排除しようとしていますか? –

+0

基本的に私が後にしているのは、Failed Contact Attemptか、Failed Contact Attemptを持たず割り当てられているものです。しかし、失敗したコンタクト・アテンプトについては、最新のものだけを数える必要があります。これにより、現在開いているチケットの数が表示されます。 – thomasfosterBIdev

答えて

0

あなたは、あなたがrow_number()を使用することができます(もしあれば)のみ、最新の「接触に失敗した」保持する場合:

select r.* 
from (select r.*, 
      row_number() over (partition by (case when reason like 'Failed Contact%' then 1 else 2 end) 
           order by seq_id desc 
           ) as seqnum 
     from reporting r 
    ) r 
where seqnum = 1 or reason not like 'Failed Contact%' 
order by Job_id, seq_id, Reason; 
関連する問題