arrays - Presto - 我如何比较两个数组以获得最大匹配值计数
问题描述
我想将用户数组与定义的数组进行比较并获得最大匹配值计数。
我在 presto 中查看了使用“转换”,但无法继续解决问题
Compare ( A[1,2,3,1,4,7,1,2,1,8] , B[1,2,3,4,5] )
在这里,数组 A 将与数组 B 进行比较。 A 在 B 中的值是 1,2,3,4
所以,预期输出:4
解决方案
您可以使用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 ://trino.io/docs/current/functions/array.html
推荐阅读
- datetime - 我试图找到应该使用什么运算符从时间戳中提取日期时间。Timestamp 列显示的结果类似于 0x0000000002CAE4C0
- node.js - 变量在重新运行时不刷新。如何传递变量?
- bigcommerce - 参考定制产品模板
- scala - 为什么它打印连接的新客户端:network-2?
- symfony-2.7 - 控制器在 Symfony2 的 set 命令中发送空值
- javascript - 如何从 JS 更改 v-model 值
- java - 为什么我的回文检查器总是评估为真?我尝试调试,结果不一样
- spring-boot - Spring boot logbcak to file在tomcat上不起作用
- amazon-web-services - 如何从 EC2 连接到本地 VPN?
- sycl - 为什么默认情况下每个 SYCL 设备都在单独的上下文中?