sql - Presto数组包含一个喜欢某种模式的元素

标签 sql presto trino

例如,我表中的一列是一个数组,我想检查该列是否包含一个包含子字符串“denied”的元素(因此,诸如“denyed at 12:00 pm”,“denied by admin”之类的元素都将计数,我相信我将不得不使用“喜欢”来识别模式)。如何为此编写SQL?

最佳答案

使用presto的array functions:

  • filter(),它返回满足给定条件的元素
  • cardinality(),它返回数组的大小:

  • 像这样:
    where cardinality(filter(myArray, x -> x like '%denied%')) > 0
    

    关于sql - Presto数组包含一个喜欢某种模式的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50766928/

    相关文章:

    mysql - 查询中的平均值 - mysql

    java - 在 Java 中接受来自外部文本文件的 SQL 查询

    mysql - 在 myisam 表上,为什么我的 Select 非常慢,但很少见

    sql - 如何查找上次更新记录的时间?

    amazon-web-services - Amazon Athena View 实际上是 hive View ,还是单独的附加 View ?

    sql - 即使我在字段上指定了 "is not null",查询结果仍包含空字段

    presto - Presto CLI 上 Presto 中的参数化 SQL

    google-cloud-storage - Google DataProc Presto : how to write Presto query results to google cloud storage?

    amazon-web-services - AWS 雅典娜 : Filter only numeric entries on a column