在雪花中保持的等价物 [英] Equivalent for Keep in Snowflake
本文介绍了在雪花中保持的等价物的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将Oracle代码转换为Snowflake,
在Oracle中:
MIN(salary) KEEP (DENSE_RANK FIRST ORDER BY commission_pct) "Worst",
由于我们在Oracle中没有保留(&p>),相应的内容是什么?
推荐答案
您仍然可以使用聚合函数,而无需创建子查询/求助于窗口函数。
其思想是使用支持排序的聚合函数,如ARRAY_AGG并访问第一个元素:
SELECT sth,
MIN(salary) KEEP (DENSE_RANK FIRST ORDER BY commission_pct) "Worst"
FROM tab
GROUP BY sth;
将为:
SELECT sth,
(ARRAY_AGG(salary) WITHIN GROUP(ORDER BY commission_pct DESC, salary))[0]
FROM tab
GROUP BY sth;
这篇关于在雪花中保持的等价物的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文