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

如何根据另一列元素出现次数更新SQLite表的列

SQLite按街道出现次数更新Status字段

要实现根据Street字段的出现次数批量更新Status,你可以通过统计分组次数+关联更新的方式完成,以下是两种可行方案:

方案1:使用UPDATE + FROM子句(SQLite 3.33.0+支持)

这种方式先通过子查询统计每条街道的出现次数,再关联原表进行批量更新,效率较高:

UPDATE log_table
SET Status = CASE WHEN street_count > 2 THEN 1 ELSE 0 END
FROM (
    -- 先统计每个Street的出现次数
    SELECT Street, COUNT(*) AS street_count
    FROM log_table
    GROUP BY Street
) AS street_stats
-- 关联原表与统计结果
WHERE log_table.Street = street_stats.Street;

方案2:使用关联子查询(兼容旧版SQLite)

如果你的SQLite版本不支持UPDATE ... FROM,可以用行级关联子查询实现:

UPDATE log_table
SET Status = (
    -- 对当前行的Street,统计全表中相同值的出现次数,再判断赋值
    SELECT CASE WHEN COUNT(*) > 2 THEN 1 ELSE 0 END
    FROM log_table AS t
    WHERE t.Street = log_table.Street
);

效果验证

执行上述语句后,你的表会变成:

idStreetStatus
1"main_street"1
2"1st_street"1
3"1st_street"1
4"main_street"1
5"2nd_street"0
6"1st_street"1
7"main_street"1
8"2nd_street"0

完全符合你要求的规则:出现次数>2的街道对应Status设为1,≤2的保持0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 14:45:58