2017-07-26 29 views
1

我試圖將分組的值添加到現有的表。我想將每月和每年的所有「工作天數」添加爲額外的列。我在一個Sub-Select中使用group by語句嘗試了它,並再次將它加入到同一個表中。它以某種方式工作,但非常耗時。有沒有更聰明的方法?將分組的值添加到同一個表

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

添加您的預期輸出 – 2017-07-26 12:33:40

+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

這是完美的,謝謝! –

相關問題