【问题标题】:How to use LEAST function in Calcite SQL with Apache Beam如何在 Apache Beam 中使用 Calcite SQL 中的 LEAST 函数
【发布时间】:2021-05-12 14:49:32
【问题描述】:

我正在尝试在我的 Apache Beam 管道中调用 Calcite SQL 中的 LEAST 函数:

...
,LEAST(12.5 + (25 * Quartile), 100) AS PlayedPercentage
...

Quartile 是一个 int32 列。我收到以下错误:

Caused by: org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.sql.validate.SqlValidatorException: No match found for function signature LEAST(<NUMERIC>, <NUMERIC>)

我也尝试将两个参数都转换为 Float,但得到相同的结果。应该如何调用函数?

【问题讨论】:

    标签: sql apache-beam apache-calcite


    【解决方案1】:

    根据Calcite's SQL ReferenceLEAST 是特定方言的运算符,仅在 Oracle 运算符表中启用。

    如果您直接连接到 Calcite,我建议在 JDBC 连接字符串中包含 fun=oracle,这将启用 Oracle 运算符表。如果您在 Beam 中使用 Calcite,我不确定步骤是什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-28
      • 2021-08-07
      • 2022-07-13
      • 1970-01-01
      • 1970-01-01
      • 2018-07-05
      • 2018-07-26
      • 1970-01-01
      相关资源
      最近更新 更多