2
我有一個列名爲date_tran的表,顯示用戶進行任何事務的日期。有沒有辦法可以檢查用戶是否在同一個月或3個連續月份進行3次交易?如何檢查表列中的三個日期是否有連續的月份
我用下面的代碼片段:
SELECT CUST_ID, DATE_TRAN FROM FAKE_CUST F WHERE
EXISTS(
SELECT 1 from FAKE_CUST where (TO_CHAR(DATE_TRAN,'MM') = TO_CHAR(F.DATE_TRAN,'MM')-1 OR TO_CHAR(DATE_TRAN,'MM') = TO_CHAR(F.DATE_TRAN,'MM')) AND
CUST_ID= F.CUST_ID AND TO_CHAR(DATE_TRAN,'YYYY')=TO_CHAR(F.DATE_TRAN,'YYYY'))
and exists(
SELECT 1 from FAKE_CUST where (TO_CHAR(DATE_TRAN,'MM') = TO_CHAR(F.DATE_TRAN,'MM')-2 OR TO_CHAR(DATE_TRAN,'MM') = TO_CHAR(F.DATE_TRAN,'MM')) AND
CUST_ID= F.CUST_ID AND TO_CHAR(DATE_TRAN,'YYYY')=TO_CHAR(F.DATE_TRAN,'YYYY'))
但正顯示出在桌上,而不是所需要的結果的所有條目。
我在oracle中寫入查詢。我修改了您的查詢,但這不起作用 – ritika
SELECT CUST_ID,DATE_TRAN FROM fake_cust where cust_id in(SELECT cust_id from fake_cust Group By EXTRACT(MONTH FROM DATE_TRAN)having(count(EXTRACT(MONTH FROM DATE_TRAN))> 1 AND count(EXTRACT (MONTH FROM DATE_TRAN)-1)> 1 AND count(EXTRACT(MONTH FROM DATE_TRAN)-2)> 1)) – ritika