0
作爲一個具體示例,假設我有一個表T
,其中列customer
和date
表示個人客戶進行購買的日期:對滿足某些條件的表中以滿足某些條件的表格中的行數進行計算的動態方式
customer | date
----------------------
A | 01/01/2013
A | 02/01/2013
A | 07/01/2013
A | 11/01/2013
B | 03/01/2013
B | 08/01/2013
我要添加另一列,對於每對(customer, date)
對(c, d)
,給出對(c', d')
在T
使得c = c'
和0 <= days(d) - days(d') <= 7
數。下面是這個額外列的表:
customer | date | new_column
----------------------------------
A | 01/01/2013 | 1
A | 02/01/2013 | 2
A | 07/01/2013 | 3
A | 11/01/2013 | 2
B | 03/01/2013 | 1
B | 10/01/2013 | 1
由於我用來解決這個問題的步驟一個粗略的想法:
- 創建一個表
T'
所有可能的對(c,d)
; - left join
T
intoT'
; - 創建一個新列:
count(date) over (partition by customer order by date asc rows between 6 preceding and 0 following)
; - 從這個新表忽略任何行,其中
T.date is null
不過,我不認爲這是可伸縮的。
乾杯任何幫助。
您可以通過具有自加入的查詢來獲取信息。爲什麼你需要在桌子上放一個新的專欄? – 2013-05-14 16:44:43