开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC里flink sql 有啥内置函数 可以将 51,51 变成 [51,52] 吗?

Flink CDC里flink sql 有啥内置函数 可以将 51,51 变成 [51,52] 吗?

展开
收起
小小鹿鹿鹿 2024-02-01 15:25:08 38 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    问题一:Flink CDC中没有内置函数可以将51,51变成[51,52]。split也不是内置函数。

    问题二:Flink CDC中没有内置函数可以直接进行数组去重或数组对比。但是,你可以使用其他方法来实现这些功能。

    对于数组去重,你可以使用DISTINCT关键字来对数组元素进行去重。例如:

    SELECT DISTINCT column_name FROM table_name;
    

    对于数组对比,你可以使用UNNEST函数将数组拆分为多行,然后使用JOIN操作进行对比。例如:

    SELECT a.value
    FROM (SELECT UNNEST(array1) AS value FROM table_name) AS a
    LEFT JOIN (SELECT UNNEST(array2) AS value FROM table_name) AS b
    ON a.value = b.value
    WHERE b.value IS NULL;
    

    这个查询将返回在array1中存在但在array2中不存在的元素。

    2024-02-02 13:59:58
    赞同 展开评论 打赏
  • LISTAGG。d67d42a53747509e00cd6ebb10bc8bee.png此回答来自钉群Flink CDC 社区。

    2024-02-01 18:05:45
    赞同 展开评论 打赏
  • 对于您的两个问题:
    a) 转换51,51到[51,52]:没有直接的内置函数来实现这样的转换,但你可以使用字符串函数结合数组函数实现,例如先split然后用array函数构造数组。
    b) 数组去重或对比:对于数组去重,Flink SQL有DISTINCT关键字可以在数组元素上使用,不过这需要借助UNNEST配合子查询来实现;对于数组对比并返回交集,没有直接的内置函数,但是可以通过一系列的 unnest、join 和 collect_set/array_agg 等操作来完成。

    2024-02-01 16:53:25
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    SQL Server在电子商务中的应用与实践 立即下载
    GeoMesa on Spark SQL 立即下载
    原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载