【问题标题】:Quick sight adding nesting to SQL query which causes errors in Athena快速查看向 SQL 查询添加嵌套会导致 Athena 中的错误
【发布时间】:2019-05-16 00:10:14
【问题描述】:

我正在尝试在 Quicksight 中创建一个非常简单的可视化,为此我在 Quicksight 中使用 SQL 查询,

SELECT COUNT(distinct uuid), day
FROM analytics.myTable
GROUP BY day

不幸的是,每当我在 Quicksight 中运行此查询时,它都会由于以下错误而失败

来自 AWS Athena 客户端。 SYNTAX_ERROR:第 2:8 行:列“_col0” 无法解决

当我查看 Athena 时,我可以看到 Quicksight 正在“嵌套” SQL 查询......这就是导致 Athena 中的错误的原因,

/* QuickSight 4da449cf-ffc6-11e8-92ea-9ffafcc3adb3 */
SELECT "_col0"
FROM (SELECT COUNT(distinct uuid)
FROM pregnancy_analytics.final_test_parquet) AS "DAU"

我不明白的是: a) 为什么这是标记错误? b) 为什么 Quicksight 嵌套 SQL?

如果我只是直接在 Athena 中运行命令,

SELECT COUNT(distinct uuid) FROM analytics.myTable

确实显示了列名“_col0”,

    _col0
1   1699174

因此,Quicksight 引发错误这一事实实际上不应该成为问题。

有人可以就如何解决此问题提供一些建议吗?

谢谢

【问题讨论】:

  • 请尝试添加明确的列名:将COUNT(distinct uuid) 替换为COUNT(distinct uuid) c

标签: amazon-athena presto amazon-quicksight


【解决方案1】:

通常在可视化软件中,您需要明确命名聚合/函数包装的列,因为它们默认为软件无法很好解析的 _col0 之类的内容,因此会引发该错误。

具体来说,我一直在 Superset 中使用 Presto 看到这一点。

对于您的问题,您应该按照 Piotr 的建议去做,即在 COUNT(distinct uuid) 之后添加一个名称 - 我偏爱频率,但看起来您会想要 uuid 或 unique_uuid 之类的东西 :)

【讨论】:

    【解决方案2】:

    您可以修改查询以显式命名聚合列,然后查询将起作用。

    例子:

    SELECT COUNT(distinct uuid) as "distinct_uuid", day
    FROM analytics.myTable
    GROUP BY day
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 2020-10-13
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 2018-05-23
      相关资源
      最近更新 更多