【问题标题】:Does SQL chunk in Rmarkdown/knitr on Redshift support INNER JOIN and Common Table Expressions?Redshift 上的 Rmarkdown/knitr 中的 SQL 块是否支持 INNER JOIN 和公用表表达式?
【发布时间】:2018-01-01 16:08:38
【问题描述】:

最近非常喜欢使用 Rmarkdown/Knitr 执行 SQL 块,但是对于更复杂的查询似乎存在限制。我一直在使用带有 RJDBC 驱动连接的 Redshift 数据库。

具体使用带有INNER JOIN的公用表表达式:

```{sql, connection=redshift, output.var="Field_count"}
WITH
    cte AS (
      SELECT DISTINCT field
      FROM
        table
      WHERE date >= '2017-01-01'
  )SELECT count(DISTINCT field)
FROM cte
INNER JOIN table_2 t2 ON t2.join_here = cte.join_here;
```

我已经在单个查询中成功使用了 CTE 和 INNER JOIN,但是将它们组合起来会导致错误:

Error in .verify.JDBC.result(r, "Unable to retrieve JDBC results set for ", : Unable to retrieve JDBC result set for WITH
        cte AS (
          SELECT DISTINCT field
          FROM
            table
          WHERE date >= '2017-01-01'
      )SELECT count(DISTINCT field)
    FROM cte
    INNER JOIN table_2 t2 ON t2.join_here = cte.join_here; ([Amazon] (500335) One query is expected: WITH
        cte AS (
          SELECT DISTINCT field
          FROM
            table
          WHERE date >= '2017-01-01'
      )SELECT count(DISTINCT field)
    FROM cte
    INNER JOIN table_2 t2 ON t2.join_here = cte.join_here;) Calls: <Anonymous> ... dbSendQuery -> dbSendQuery -> .local -> .verify.JDBC.reslt Execution Halted

似乎在从 RStudio 会话中查询时翻译错误/重复。

这是一个已知的限制吗?如果是,它是否记录在任何地方?

这是一个已知的错误吗?如果是这样,它是否存在于现有问题中?

编辑:这仅在 knit 过程中可见,单独运行的块以交互方式返回预期结果。

【问题讨论】:

    标签: r inner-join knitr r-markdown common-table-expression


    【解决方案1】:

    我建议在 Redshift JDBC 驱动程序上尝试另一个版本。

    我遇到了同样的错误,但是,这是在使用 Pentaho 时,所以里程可能会有所不同。我没有找到与此相关的任何文档或其他信息。通过切换最新的驱动程序版本,我的问题得到了解决。我正在使用 RedshiftJDBC4-1.2.1.1001.jar(兼容 JDBC 4.0)并切换到 RedshiftJDBC4-1.1.10.1010.jar。

    【讨论】:

    • 确认使用 4.0 和 RedshiftJDBC4-1.1.10.1010.jar,当最初使用 RedshiftJDBC42-1.1.17.1017.jar 在 4.2 上运行时修复此问题,并在使用 RedshiftJDBC42-1.2.1001.jar 进行测试时失败。想知道这是否是最近的 jar 中的一个破坏性错误,或者我这边是否有什么东西导致了错误,这很有趣。用RedshiftJDBC42-1.1.17.1017.jar 测试,也失败了。
    • 无法重新编辑上面的内容,意思是说“用RedshiftJDBC4-1.1.17.1017.jar测试也失败了”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 2015-04-25
    相关资源
    最近更新 更多