本文介绍了Presto 数组包含一个喜欢某种模式的元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
例如,我表中的一列是一个数组,我想检查该列是否包含一个包含子字符串denied"的元素(所以像denied at 12:00 pm"、denied by admin"这样的元素将所有计数,我相信我将不得不使用喜欢"来识别模式).如何为此编写sql?
For example, one column in my table is an array, I want to check if that column contains an element that contains substring "denied" (so elements like "denied at 12:00 pm", "denied by admin" will all count, I believe I will have to use "like" to identify the pattern). How to write sql for this?
推荐答案
使用 presto 的 数组函数:
Use presto's array functions:
filter()
,返回满足给定条件的元素cardinality()
,返回数组的大小:
filter()
, which returns elements that satisfy the given conditioncardinality()
, which returns the size of an array:
像这样:
where cardinality(filter(myArray, x -> x like '%denied%')) > 0
这篇关于Presto 数组包含一个喜欢某种模式的元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!