You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dataform的sqlx文件是否支持CTE(公共表表达式)或子查询?

Dataform sqlx文件对CTE(公共表表达式)和子查询的支持

完全支持。sqlx是Dataform基于标准SQL扩展出的模板格式,核心SQL语法完全兼容标准SQL规范,CTE和子查询都能正常使用,你可以像编写普通SQL那样写这两种语法,同时还能结合Dataform特有的功能(比如用ref()引用其他数据集、定义变量等)。

举两个实际使用的示例:

CTE示例

config {
  type: "table"
}

WITH user_orders AS (
  SELECT user_id, COUNT(*) AS order_count
  FROM ${ref('raw_orders')}
  WHERE order_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
  GROUP BY user_id
)

SELECT
  u.user_id,
  u.name,
  COALESCE(uo.order_count, 0) AS recent_order_count
FROM ${ref('raw_users')} u
LEFT JOIN user_orders uo ON u.user_id = uo.user_id

子查询示例

config {
  type: "view"
}

SELECT
  product_id,
  product_name,
  (SELECT AVG(price) FROM ${ref('raw_product_prices')} p WHERE p.product_id = main.product_id) AS avg_price
FROM ${ref('raw_products')} main
WHERE stock_quantity > 0

只要你的底层数据仓库(比如BigQuery、Snowflake等)支持对应的SQL语法,sqlx里的CTE和子查询就能正常运行,Dataform不会限制这类标准SQL的使用。

内容的提问来源于stack exchange,提问作者BMMR data engineer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 17:05:55