2017-07-26 26 views
1

グループ化された値を既存のテーブルに追加しようとしています。私は月と年のすべての "仕事日"の数を追加の列として追加したいと思います。 Sub-Selectでグループ・バイ・ステートメントで試してみましたが、同じテーブルに再び参加しました。それは何とか動作しますが、本当に時間がかかります。賢い方法がありますか?グループ化された値を同じテーブルに追加する

Date  Year Quarter Month Week Weekday Descr. Work_Days_Month 
01.01.2017 2017 1  1  52  7  Holiday 5 
02.01.2017 2017 1  1  1  1  Work Day 5 
03.01.2017 2017 1  1  1  2  Work Day 5 
04.01.2017 2017 1  1  1  3  Work Day 5 
05.01.2017 2017 1  1  1  4  Work Day 5 
06.01.2017 2017 1  1  1  5  Work Day 5 
07.01.2017 2017 1  1  1  6  Weekend 5 
08.01.2017 2017 1  1  1  7  Weekend 5 
+0

があなたの期待出力 –

+0

を追加あなたは質問を編集し、使用しているクエリを表示する必要があります。 –

答えて

2

あなたは、ウィンドウ関数を使用することができます。

select t.*, 
     sum(case when Description = 'Work Day' then 1 else 0 end) over 
      (partition by year, month) as yyyymm_workdays 
from t; 
+0

これは完璧です、ありがとうございます! –

関連する問題