我想加入一個完整的日曆表,每個用戶購買數據以顯示每個用戶從2014年到2017年每月的任何購買計數。有些用戶可能不會直到2016年纔會有購買,但我仍然希望結果在第一個購買日期的每個月都顯示0,以及在幾個月之間的任何0。顯示所有月份的購買次數 - 包括0個購買月份
我不能得到0個月被列入!我認爲這是因爲我在許多獨特的用戶中這樣做,但感覺下面的代碼應該可以工作。
select
c.fscl_yr_num
,c.fscl_month_num
,t.user_id
,sum(nvl(t.trans_counter, 0))
from
appca.d_cal c
left join
transaction_data t
on c.cal_dt = t.trans_dt
and t.trans_type = 'Purchase'
and c.fscl_yr_num in (2014, 2015, 2016, 2017)
group by
c.fscl_yr_num
,c.fscl_month_num
,t.user_id
order by
t.user_id
,c.fscl_yr_num
,c.fscl_month_num
;
爲什麼你在group-by和訂單在第一子查詢條款;爲什麼在第二次聚合呢?事實上,爲什麼你有子查詢(內聯視圖)呢? –
我是全新的sql並教授自己,所以我確信我有壞習慣。 –
@AlexPoole請參閱我的更新代碼,它刪除了子查詢,但沒有解決我的問題。有任何想法嗎? –