首页 > 解决方案 > sqlite:如何使用子查询的结果更新列?

问题描述

我需要更新包含同一个 tableA 的重复值数量的列。重复查询很简单,但是如何用结果更新列呢?

这就是我谦虚的 sql 知识带给我的:

with dupl as (
select "KGEZ" as k, count(*) as c from tableA group by "KGEZ" having c>1
)
update tableA
set "kgez_count" = "c"
where  "KGEZ" = "k"

任何帮助表示赞赏。

标签: sqlitecount

解决方案


我认为这就是你想要的:

with dupl as (
  select "KGEZ" as k, count(*) as c from tableA group by "KGEZ" having c > 1
)
update tableA
set "kgez_count" = coalesce((select c from dupl where k = tableA."KGEZ"), 0)

如果coalesce()"KGEZ"不想将该列更新为null.


推荐阅读