【发布时间】:2019-12-27 09:25:44
【问题描述】:
您好,我正在尝试为我的回归研究收集汇总的时间序列数据。我需要使用日期键在一个纵向表中左连接多个选择。但是,因为我正在处理一个相当大的数据框,所以我需要限制查询的日期间隔。
SELECT ts.date_of_transaction,
s.rev
FROM db.transaction as ts
--Where ts.date_of_transaction > date '2019-08-13'
LEFT JOIN
(select date_of_transaction, sum(amount) as rev from db.transaction where date_of_transaction >= date '2019-08-13' and
main_group_number=200 and
group_number=15 and
class_number in (45,25,20,30)
group by date_of_transaction) as s
ON ts.date_of_transaction = s.date_of_transaction;
当我在第四行关闭 where 子句时,我的查询没有任何问题。但是,当我添加时间过滤器来查询外部表时,我收到以下错误...
选择失败。 3706: 语法错误:期望在字符串或 Unicode 字符文字和 'LEFT' 关键字之间。
【问题讨论】:
-
date '2019-08-13'这看起来不对。它应该类似于to_date('2019-08-13', 'YYYY-MM-DD') -
@JorgeCampos:
date '2019-08-13'是正确的,它是标准 SQL 日期文字,除了 Teradata 之外,许多 DBMS 都支持它。例如甲骨文、Postgres、MySQL -
@dnoeth 感谢您提供的信息,不知道
date可以用作这样的文字。每天学习:)