取消
顯示的結果
而不是尋找
你的意思是:

將SQL代碼轉換為SQL數據磚

LightUp
新的貢獻者三世

我的新磚。請原諒我的無知。

我的要求是下麵的SQL查詢轉換成磚SQL。查詢來自事件日誌表和查詢的輸出進入EventSummary

可以找到這些查詢在這裏

創建表事件日誌(EventID INT, EventName字符串,EventStartDateTime時間戳,EventEndDateTime時間戳)插入事件日誌(EventID, EventName, EventStartDateTime EventEndDateTime)值(100年,“種植”,“20210620 10:34:09點”,“20211018 10:54:49點”),(200年,“基礎”,“20200420 10:34:09點”,“20211018 10:54:49點”),(300年,“播種”,“20210410 10:27:19點”,“),(400年,“傳播”,“20220310 10:24:09點”,“);創建表EventSummary (EventID INT, EventName VARCHAR(50)字符串,(年)INT [MonthName]字符串,[時間]小數)

我有一個代碼就像我想把磚SQL:

;與CTE(選擇EventID、EventName EventStartDateTime, IIF (EventEndDateTime = ", GETUTCDATE (), EventEndDateTime)從事件日誌UNION ALL EventEndDateTime選擇EventID EventName,返回(月,DATEDIFF(月,0,返回(月,1,EventStartDateTime)), 0), EventEndDateTime CTE中返回(月,DATEDIFF(月,0,返回(月,1,EventStartDateTime)), 0) < = EventEndDateTime)插入EventSummary (MonthName EventID EventName,年,小時)選擇EventID EventName,年(EventStartDateTime) DATENAME(月,EventStartDateTime) DATEDIFF(第二,EventStartDateTime n_EventStartDateTime) / 3600.0(選擇EventID EventName、EventStartDateTime、鉛(EventStartDateTime 1 EventEndDateTime) /(分區由EventID EventName ORDER BY EventStartDateTime) n_EventStartDateTime CTE) t1選項(maxrecursion 0)

圖像

這個查詢對SQL Server效果很好,但我將它轉換為SQL數據磚有問題

我想要得到相同的結果但在磚,我得到CTE不能發現的錯誤,因為我打電話CTE裏麵第一個CTE

我非常感謝你的幫助。

2回答2

匿名
不適用

火花SQL有公共表表達式:https://spark.apache.org/docs/latest/sql-ref-syntax-qry-select-cte.html

我不是專家在SQL或ct,但我猜想這是遞歸選項。

LightUp
新的貢獻者三世

謝謝@Joseph Kambourakis

圖像

的部分我不清楚如何返工的部分環繞在上圖。

甚至這部分代碼不工作在磚:

返回(月,DATEDIFF(月0返回(月,1,EventStartDateTime)), 0)

試著轉換了但是不確定函數(s)可以代替那些得到相同的答案

期待更多的想法

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map