mysql - 在 UPDATE 的 WHERE 条件下引用 CTE
问题描述
我正在尝试运行这样的查询:
WITH cte AS
(
SELECT id, category, SUM(amount) AS sum_amount FROM t1 GROUP BY id, category
)
UPDATE table SET amount = cte.sum_amount WHERE id = cte.id;
但是,我不断收到错误
Unknown column 'cte.id in WHERE clause'
有谁知道我如何在 UPDATE 查询中引用我的公用表表达式,或者重写它?
解决方案
你可以试试下面
WITH cte AS
(
SELECT id, SUM(amount) AS sum_amount FROM t1 GROUP BY category
)
UPDATE T
SET T.sum_amount= CT.sum_amount
FROM table T
JOIN cte CT
ON T.id = CT.id
推荐阅读
- spring-boot - 如何使用 spring-cloud-stream 配置 Micrometer KafkaClientMetrics
- python - PyTorch 字典键不匹配
- c# - (C# WPF)单击menuA中的MenuItem时如何打开menuB
- r - 在 R 闪亮的仪表板中使用 for 循环时出错
- angular - 堆积条形图,两个在同一行,颜色相同
- c++ - std::filesystem::canonical 和 std::filesystem::absolute 不起作用
- c++ - 视图中的参数推导失败::take_while
- python - 有没有办法在matplotlib中手动设置x轴上的日期频率?
- python - 在 Python 中合并列表推导
- unit-testing - StateFlow:在 Kotlin Multiplaform 中对 StateFlow 进行单元测试