在 MonetDB 中使用 WITH

Posted

技术标签:

【中文标题】在 MonetDB 中使用 WITH【英文标题】:Using WITH in MonetDB 【发布时间】:2021-10-15 13:01:13 【问题描述】:

我正在尝试使用“WITH”在 MonetDB 中执行下一个查询:

with a as (select data_string from colombia.dim_tempo)
select 
 t.ano_mes 
,f.sg_estado
,f.cod_produto 
, sum(f.qtd_vendidas) as qtd_vendidas
, count(*) as fact_count
from colombia.fact_retail_market f, colombia.dim_tempo t
where f.cod_anomes = t.data_string 
and t.data_string in (a.data_string)
group by
 t.ano_mes 
,f.sg_estado 
,f.cod_produto ;

但总是收到此消息:

这句话有什么问题?

【问题讨论】:

【参考方案1】:

WHERE 子句必须是:

WHERE f.cod_anomes = t.data_string AND
      t.data_string IN (SELECT data_string FROM a)

也就是说,IN 后面需要跟一个针对 CTE 的子查询。

【讨论】:

谢谢!我想我理解了这个概念。 CTE 就像一个“视图”。

以上是关于在 MonetDB 中使用 WITH的主要内容,如果未能解决你的问题,请参考以下文章

monetdb 批量复制 |使用 python 批量复制

在 MonetDB 中的 case 语句中绑定变量

从 MonetdbLite C API 使用 monetdb_append

MonetDB 如何使用索引?

如何告诉 MonetDB 数据在表中排序?

在 MonetDB 中最快实现lead() 或 lag() 窗口函数