2017-01-18 11 views
-1

私は、2列の日付列を持つ表(以下に示す)を持っています。私は両方の列で年を一致させようとしています。 1つの列の年がnの場合、コードは他の列の対応する年の値がn,(n - 1)、または(n - 2)であると予測します。たとえば、左の列の値2016、その右の列の値が2014,2015、または2016である必要があります。そうでない場合は、外れ値として集計する必要があります。基準に基づく列値の比較と外れ値の比較

Date 1 | Date 2 
-----------+---------- 
31-10-2016 |31-10-2014  
31-10-2016 |31-10-2015 
31-10-2016 |31-10-2016 
31-10-2016 |31-10-2016 
31-10-2016 |31-10-2015 
31-10-2016 |31-10-2013 
31-10-2016 |31-10-2013 
+0

サンプルデータから、あなたの期待される出力とは何ですか? – Susang

+2

DBMS –

+0

このコードサンプルの実行方法を追加してください。 – Dasrath

答えて

0

次のクエリは実行します:

select (case when extract(year from date2) between extract(year from date1)-2 and extract(year from date1) then 'valid' else 'outlier' end)tagDt 
from your_table 

は、あなただけの両方の日から一年を抽出し、通常の場合の操作を適用する必要があります。

サンプル:

select date '2016-10-31' date1, '2014-10-31' date2, extract(year from date '2016-10-31') y1, extract(year from date '2014-10-31') y2, 
     (case when extract(year from date '2013-10-31') between extract(year from date '2016-10-31')-2 and extract(year from date '2016-10-31') then 'valid' else 'outlier' end)tagDt 

出力:

"2016-10-31";"2014-10-31";2016;2014;"outlier" 
関連する問題