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

如何将分区计算结果写入现有RECENT列而非新增列

解决方案

场景1:仅查询返回替换后结果(不修改原表)

不要使用SELECT *(它会包含原有RECENT列),需要显式列出所有列,并用计算结果覆盖RECENT的取值:

SELECT 
    ID,
    ORDER,
    AGE,
    (ORDER = MAX(ORDER) OVER (PARTITION BY ID)) AS RECENT
FROM MY_TABLE

这里的(ORDER = MAX(ORDER) OVER (PARTITION BY ID))会返回布尔值:当当前行的ORDER等于该ID分组下的最大ORDER时为TRUE,否则为FALSE,直接替换原有RECENT列的输出值。

场景2:直接更新原表的RECENT列值

如果需要永久修改表中RECENT列的数据,可以用CTE(公共表表达式)先计算每个ID的最大ORDER,再关联更新:

WITH MaxOrderPerID AS (
    SELECT ID, MAX(ORDER) AS MaxOrder
    FROM MY_TABLE
    GROUP BY ID
)
UPDATE t
SET RECENT = (t.ORDER = mo.MaxOrder)
FROM MY_TABLE t
INNER JOIN MaxOrderPerID mo ON t.ID = mo.ID

内容的提问来源于stack exchange,提问作者Angie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 10:55:18