在雪花中保持的等价物 [英] Equivalent for Keep in Snowflake

查看:17
本文介绍了在雪花中保持的等价物的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆