df = spark.createDataFrame(((2018年,“Apple1”, 45000),(2019年,“Apple1”, 35000),(2020年,“Apple1”, 75000年),
(2018年,“三星”,15000),(2019年,“三星”,20000),(2020年,“三星”,25000年),
(2018年,“諾基亞”,21000),(2019年,“諾基亞”,17000),(2020年,“諾基亞”,14000年),
“年”,“品牌”,“銷售”))
df.createOrReplaceTempView (“PhoneBrandSales”)
火花。sql (SELECT * FROM PhoneBrandSales),告訴()
%的sql
SELECT *,
鉛(銷售、1 0)
/(分區通過品牌訂單desc) PreviousYearSales
從PhoneBrandSales;
%的sql
- - -https://www.sqlservertutorial.net/sql-server-window-functions/sql-server-lag-function/
與CTE作為
(
選擇*,
鉛(銷售、1 0)
在(分區通過品牌訂單通過一年desc)作為PreviousYearSales
從PhoneBrandSales;
)
選擇*從CTE
拋出ParseException:
沒有可行的選擇輸入”與CTE \ n (\ n \ n SELECT *,鉛(銷售,1,0)\ n /(分區通過品牌訂單desc)從PhoneBrandSales PreviousYearSales \ n”(第6行,pos 22)
SQL = = = =
與CTE
(
SELECT *,
鉛(銷售、1 0)
/(分區通過品牌訂單desc) PreviousYearSales
從PhoneBrandSales
- - - - - - - - - - - - - - - - - - - - - - - ^ ^ ^
奇妙的,它已經解決了,非常感謝及時回答。