Presto-如何比较两个数组以获取最大匹配值计数

时间:2019-06-25 07:34:10

标签: arrays presto

我想将用户数组与定义的数组进行比较,并获得最大匹配值计数。

我曾经使用过“转换”功能,但无法继续解决问题

join

此处,将数组A与数组B进行比较。 A在B中的值为1,2,3,4

因此,预期输出:4

1 个答案:

答案 0 :(得分:1)

您可以使用array_intersect查找两个数组之间的公共元素,然后使用array_max查找交集中的最大值。例如:

WITH t AS (
    SELECT ARRAY [1,2,3,1,4,7,1,2,1,8] AS x, ARRAY [1,2,3,4,5] AS y
) 
SELECT array_max(array_intersect(x, y))
FROM t;

将得到4

所有数组函数都记录在这里:https://prestosql.io/docs/current/functions/array.html