我正在嘗試在 Snowflake 中運行此查詢,但我一直收到錯誤訊息。
select x.*, (select z.status from TBLA z where z.number_id=x.number_id and z.country=x.country and z.datetime=x.datetime) status
from
(
select a.number_id, a.country, max(datetime) as datetime
from TBLA a
group by a.number_id, a.country
) x
這是我得到的錯誤:
SQL compilation error: Unsupported subquery type cannot be evaluated
有誰知道如何解決這一問題?
uj5u.com熱心網友回復:
要獲取每個 number_id/country 視窗函式的最新日期時間的狀態,可以使用:
SELECT a.*,
(ARRAY_AGG(a.status) WITHIN GROUP(ORDER BY a.datetime DESC)
OVER(PARTITION BY a.number_id, a.country))[0] AS latest_status
FROM TBLA a;
uj5u.com熱心網友回復:
看起來您正在嘗試按 number_id 和國家/地區獲取最新狀態。使用視窗函式 row_number() 在 Snowflake 中執行此操作的簡單查詢是
select * from TBLA
qualify row_number() over (partition by number_id, country order by datetime desc) = 1;
uj5u.com熱心網友回復:
SELECT 中只允許使用標量子查詢。您的子查詢本質上不是標量。
https://docs.snowflake.com/en/user-guide/querying-subqueries.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/346160.html
下一篇:如何獲得最長的“重疊”單詞
