Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Tableau自定义查询错误_Sql_Amazon Redshift_Tableau Api - Fatal编程技术网

Sql Tableau自定义查询错误

Sql Tableau自定义查询错误,sql,amazon-redshift,tableau-api,Sql,Amazon Redshift,Tableau Api,在尝试对Amazon Redshift到Tableau桌面运行下面的自定义SQL查询时,我遇到以下错误。我可以在Tableau中预览,但当我实际尝试使用它作为数据源时,它不起作用 [Amazon][RedShift ODBC]30尝试执行查询时出错:错误:无效数字,值“L”,位置0,类型:双详细信息:-------------错误:无效数字,值“L”,位置0,类型:双代码:1207上下文:LNDL527501查询:1611757位置::0进程:查询0\u 71[pid=0]-----------

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

[Amazon][RedShift ODBC]30尝试执行查询时出错:错误:无效数字,值“L”,位置0,类型:双详细信息:-------------错误:无效数字,值“L”,位置0,类型:双代码:1207上下文:LNDL527501查询:1611757位置::0进程:查询0\u 71[pid=0]------------

 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`

通过在自定义SQL中硬编码解决方案,然后使用Tableau简单地绘制特定硬编码SQL的结果,您的生活变得艰难而低效

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

要做到这一点,您必须信任该工具并学会使用Tableau概念。这类似于使用高级语言并相信编译器生成准确高效的机器代码。通过学习使用Tableau功能并让其生成查询,您可以在生产力和可移植性方面获得类似的提升。当然,理解数据库概念和SQL也不会有什么帮助

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

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