首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Tableau自定义查询错误

Tableau自定义查询错误
EN

Stack Overflow用户
提问于 2018-01-26 07:54:38
回答 1查看 608关注 0票数 0

当我尝试在Tableau桌面上对Amazon Redshift运行下面的自定义SQL查询时,我得到了以下错误。我可以在Tableau中“预览”,但当我实际尝试将其用作数据源时,它不起作用。

亚马逊(30)尝试执行查询时出错:错误:数字无效,值'L',位置0,类型: Double DETAIL:错误:数字无效,值'L',位置0,类型:双代码: 1207上下文: LNDL527501查询: 1611757位置::0流程: query0_71 pid=0

代码语言:javascript
运行
复制
 SELECT d.dat, m.merch_id, q1.miles_purchased, q1.total_units, 
            CASE
                WHEN date_diff('day'::text, m.first_trans::timestamp without time zone, d.dat::timestamp without time zone) < 0 THEN 0::bigint
                ELSE date_diff('day'::text, m.first_trans::timestamp without time zone, d.dat::timestamp without time zone)
            END AS days_open
       FROM schemaname.all_dates d
      CROSS JOIN ( SELECT t.merch_id, min(t.transaction_date)::date AS first_trans
               FROM schemaname.transactions t
              GROUP BY t.merch_id) m
       LEFT JOIN ( SELECT t.merch_id, t.transaction_date::date AS trans_date, sum(t.settlement_amt) / 16.5 * 60::numeric AS miles_purchased, sum(t.settlement_amt) / 16.5 AS total_units
          FROM schemaname.transactions t
         GROUP BY t.merch_id, t.transaction_date::date) q1 ON m.merch_id::text = q1.merch_id::text AND d.dat = q1.trans_date;

 - `List item`
EN

回答 1

Stack Overflow用户

发布于 2018-01-28 02:02:49

您使用自定义SQL对解决方案进行硬编码,然后使用Tableau简单地绘制特定硬编码SQL的结果,这使您自己的生活变得艰难(而且效率低下)。

如果您正在使用Tableau,那么让Tableau生成SQL --这种方法更加灵活和高效。避免在Tableau中使用自定义SQL -这是目前仅在极少数情况下才需要的选项-而且它会阻止Tableau执行可以使Tableau更快的查询优化。

要做到这一点,您必须信任该工具并学会使用Tableau概念。这类似于使用高级语言并信任编译器生成准确、高效的机器码。通过学习使用Tableau特性并让它生成查询,您可以获得类似的生产力和可移植性提升。这并不是说理解数据库概念和SQL不会有帮助。

因此,不需要自定义SQL,只需直接连接到transactions表,然后学习使用计算字段、过滤器、表计算、LOD计算和其他功能来进行分析。这些功能可以完成大部分或所有查询尝试。

最后,如果您坚持使用自定义SQL,请尝试从查询中删除尾随的分号

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48453824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档