我被看似簡單的查詢卡住了,但無法設法讓它在最後幾小時工作。將總值的部分計算爲每列的列數(數據透視表)
我有一個表files
保存的文件名,並想在這個文件中記錄了一些值,創建(create_date
)的日期,處理(processing_date
)的日期等。創建日期在不同時間可能有多個文件,很可能它們不會在創建者的同一天處理,事實上,甚至可能需要三天或更長時間才能處理。
所以,讓我們假設我有這行,作爲一個例子:
create_date | processing_date
------------------------------
2012-09-10 11:10:55.0 | 2012-09-11 18:00:18.0
2012-09-10 15:20:18.0 | 2012-09-11 13:38:19.0
2012-09-10 19:30:48.0 | 2012-09-12 10:59:00.0
2012-09-11 08:19:11.0 | 2012-09-11 18:14:44.0
2012-09-11 22:31:42.0 | 2012-09-21 03:51:09.0
我在一個查詢想要什麼是讓一個分組列截斷爲create_date
的一天增加11列的差異在processing_date
和create_date
之間,這樣的結果應該大致是這樣的:
create_date | diff0days | diff1days | diff2days | ... | diff10days
------------------------------------------------------------------------
2012-09-10 | 0 2 1 ... 0
2012-09-11 | 1 0 0 ... 1
等等,我希望你明白了吧:)
我已經試過這一點,到目前爲止,它的作品獲得了create_date
單條聚集柱的差異 - 例如 - 3:
SELECT TRUNC(f.create_date, 'DD') as created, count(1) FROM files f WHERE TRUNC(f.process_date, 'DD') - trunc(f.create_date, 'DD') = 3 GROUP BY TRUNC(f.create_date, 'DD')
我試圖結合單查詢,我試圖子查詢,但這並沒有幫助,或者至少我對SQL的瞭解還不夠。
我需要的是一個提示,以便我可以將各種差異包括爲列,如上所示。 我怎麼可能做到這一點?
你的回答適合我的需要最好的,我補充說: 「否則爲0」 的情況下不能爲NULL。謝謝! – devrys