【发布时间】:2021-09-16 22:14:27
【问题描述】:
刚刚学习如何使用常用的表表达式,我希望我从一开始就这样写。
我已使用 WITH ... AS 将数据库中的所有查询转换为 CTE 格式,但我正在努力解决这个问题。
所以有两个表:
表 1. 客户
- customer_id:每个客户的唯一 ID
- full_name:客户全名
表 2. 订阅
- subscription_id:订阅的唯一 ID
- customer_id:订阅客户的 ID
- 标题:订阅名称
以下查询用于返回您的每个客户有多少订阅:
SELECT c.customer_id, c.full_name,
(
SELECT COUNT(*)
FROM subscriptions s
WHERE s.customer_id = c.customer_id
GROUP BY s.customer_id
) subscriptions_count
FROM customers c
如何将其重写为公用表表达式?
【问题讨论】:
-
你不能。它是一个相关子查询。
-
@GordonLinoff,好吧,嗯,是否有可能解决完全不同的问题来回答同一个问题(使用 CTE)?
-
。 .这个查询的作用既不需要 CTE 也不需要子查询。
标签: sql snowflake-cloud-data-platform common-table-expression