我正在將PRESTO sql轉換為databricks sql。請幫助我轉換以下子查詢。
PSF_PIVOT
AS (SELECT A.PATIENT_ID, A.REPORT_ID, A.VISIT_DATE, A.DISEASE_GROUP,
MAP_AGG(A.NAME, A.VALUE) AS KV
FROM PSF_BEST A
GROUP BY A.PATIENT_ID, A.REPORT_ID, A.VISIT_DATE, A.DISEASE_GROUP
)
我在轉換上面的MAP_AGG部分時遇到問題。
提前感謝!
我嘗試使用MAP代替MAP_AGG函數,但結束了以下錯誤:
[COLUMN_NOT_IN_GROUP_BY_CLAUSE] The expression "NAME" is neither present in the group by, nor is it an aggregate function. Add to group by or wrap in `first()` (or `first_value()`) if you don't care which value you get.
有等效的PIVOT方法來實現這一點。但我對Databricks中的這個函數不太熟悉。
map
是一個scalar函數,不能用作聚合函數。嘗試在聚合arrays上使用map_from_arrays
: