select to_date(to_char(order_date, 'yyyymmdd'), 'yyyymmdd') -
lag(to_date(to_char(order_date, 'yyyymmdd'), 'yyyymmdd'), 1, 0)
over (order by order_id)
from orders
我想找出兩個日期之間的天數差異,但是當我將滯后函式應用于日期時,它回傳 NUMBER 值 -
ORA-00932: 不一致的資料型別: 預期的 DATE 得到了 NUMBER
嘗試使用 TO_CHAR、CAST 進行一些轉換,但沒有多大幫助。任何幫助表示贊賞!
uj5u.com熱心網友回復:
是order_date一個date?如果是這樣,to_char對它執行 a 只是為了to_date再次對其執行 a 是沒有意義的(如果您只是想將時間組件設定date為午夜,請使用trunc(order_date))。假設它是一個date
order_date - lag(order_date) over (order by order_id)
應該是有效的語法。
但是,您似乎不太可能想知道連續訂單之間的天數(幾乎可以肯定是一天的一小部分),而不是,比如說,同一客戶的連續訂單之間的天數,這可能涉及分析函式中的partition by子句。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/451598.html
上一篇:使用內部聯接更新帶有WhereNotExists子句的SQL陳述句
下一篇:SAS服務器行為例外
