如何比较两个数组并在Clickhouse中找到数组中的匹配项(0/1)

卡尔克斯

爱Clickhouse中的数组!

目前,我们正在尝试设计一个解决方案,该解决方案要求我们查找array2中的元素是否存在于array2中,而与顺序无关。

例如

array1= ['x','y','z']
array2= ['a','x','c']

Then the return that we want is [1,0,0]

  1. 是否有一种简单的现成方法来完成此任务?
  2. 这是一个较大查询的一部分,这意味着来自此数组比较的结果将用作arrayMap((a,b)-> a * b,result,metric_array)的一部分-更多的是内联过滤。
  3. 如果有任何方法可以做到,性能将大大提高!

提前致谢!

弗拉基米尔

试试这个查询:

SELECT
    ['x', 'y', 'z'] AS a1,
    ['a', 'x', 'c'] AS a2,
    arrayMap(x -> has(a2, x), a1) AS result

/*
┌─a1────────────┬─a2────────────┬─result──┐
│ ['x','y','z'] │ ['a','x','c'] │ [1,0,0] │
└───────────────┴───────────────┴─────────┘
*/

该解决方案看起来无效,但也应进行检查:

SELECT
    ['x', 'y', 'z'] AS a1,
    ['a', 'x', 'c'] AS a2,
    arrayIntersect(a1, a2) AS a3,
    arrayMap(x -> has(a3, x), a1) AS result

/*
┌─a1────────────┬─a2────────────┬─a3────┬─result──┐
│ ['x','y','z'] │ ['a','x','c'] │ ['x'] │ [1,0,0] │
└───────────────┴───────────────┴───────┴─────────┘
*/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何比较两个数组中的值以找到一个或多个匹配项?[jQuery]

如果找到匹配项,则比较两个数组

如何在两个数组中找到匹配的值?

如何比较两个数组中的数据并在javascript中返回不匹配的数组?

比较两个数组并在 SWIFT 3 中找到不常见元素的索引

如何在Python中找到没有重复的两个数组中最接近的元素,并在Python中返回两个数组的索引?

比较ClickHouse行中的两个数组

如何比较两个对象数组并更改在两个数组中找到的对象的值?

如何在两个包含字典的数组中找到匹配项?

如何在两个数组中找到公共元素?

如何从两个数组javascript中找到不同的对象

比较两个数组并找到特定值中的所有重复项 (php)

索引不匹配时如何比较两个数组

如何比较两个数组并获得匹配的输出?

比较两个数组并删除javascript中的部分匹配

检查两个数组中的任何匹配项

在两个数组中打印不匹配项

使用indexOf在两个数组中查找匹配项

如何比较两个数组,并从一个数组中删除两个数组中不匹配的多个项目?

如何匹配/配对两个数组元素并在 PHP 中只返回一个

如何比较对象的两个数组并删除JavaScript中的重复项

ReactJS - 如何比较/过滤两个数组的匹配 id 并在双重搜索功能中使用结果?

java - 如何在两个数组中查找字符串之间的匹配项

MongoDB:在数组中找到两个完全匹配的项,但都不是

比较并在嵌套数组中添加两个数组

您如何比较BigQuery中的两个数组?

如何比较php中的两个数组?

如何比较两个数组的元素

如何比较两个数组的项目