javascript - 雪花中的 ARRAY_REMOVE()?
问题描述
Postgresql 具有 ARRAY_REMOVE 函数来从数组中删除元素。我怎样才能在雪花中做到这一点?
解决方案
UDF 方法效果很好,如果您愿意,可以使用另一种方法:
- 如果您使用 UDF,则使用无法使用的令人敬畏的雪花缓存
- 只写简单的 SQL
- 不保证数组的顺序
取决于用例......如果您不太可能从缓存中受益并且想要“更干净”的代码,那么 UDF 可能是最好的 - 但是如果您可能从缓存中受益,那么只喜欢 SQL 那么这种方法可能有用。
SELECT
ARRAY_AGG(VALUE) REMOVED
FROM
CTE, LATERAL FLATTEN(AN_ARRAY)
WHERE
VALUE!='A'
同样的例子工作得很好。
select
array_agg(value)
from
table(flatten(input => parse_json('["a", "b", "c", "a"]')))
where
value not in ('a');
select
array_agg(value)
from
table(flatten(input => parse_json('[4, 1, 4, 2, 3, 4]')))
where
value not in (4);
select
array_agg(value)
from
table(flatten(input => parse_json('[4.3, 1.1, 4.2, 0.1, 3.3, 0.2]')))
where
value not in (0.2);
推荐阅读
- scala - 有没有办法通过检查 Scala 中的 Array 元素来过滤 List 的元素?
- ssl - 带有证书身份验证的客户端凭据流 - 安全使用客户端上存储的证书的最佳方法是什么?
- python - Python Flask WTForms 自定义验证器不起作用
- sql - 为 BigQuery 中的值的分位数创建列
- apache-spark - 比较 spark 和 alteryx 的性能
- python - 从 pandas groupby 获得独特的价值记录
- css - 离子:离子幻灯片上的背景盖在部署时不起作用
- javascript - Image Javascript Resize Big to Small 反之亦然
- excel - 在 vb 中使用 epplus 添加整行
- c# - C# 对象到 json - 如何构建对象?