sqlite 如何根据另一列中元素的计数更新列

c90pui9n  于 2022-12-29  发布在  SQLite
关注(0)|答案(1)|浏览(218)

我有一个这样设置的SQLite表

log_table
 
id           Street         Status      
----------   ----------     ----------
1            "main_street"  0     
2            "1st_street"   0
3            "1st_street"   0
4            "main_street"  0
5            "2nd_street"   0
6            "1st_street"   0
7            "main_street"  0
8            "2nd_street"   0

我有多行数据。在开始状态表中,每行都是0。我想根据该行的街道值在所有数据中出现的次数来更新它。例如,对于第一行,街道名称是“main_street”,因为它在我的所有数据中出现了3次,我想将它设置为1。我的状态表标准是街道是否出现〉2应将其设置为1。如果显示的街道〈=2,我希望状态设置为0。对于第5行,状态表应设置为0,因为显示的“2nd_street”〈=2。
我试着用GROUP_BY和COUNT的组合来解决这个问题,但是我没有得到一个答案。我应该怎么解决这个问题呢?

lawou6xi

lawou6xi1#

使用一个相关子查询来计算表中包含相同street的行数:

UPDATE log_table AS t1
SET status = (SELECT COUNT(*) FROM log_table AS t2 WHERE t2.street = t1.street) > 2;

请参见demo

相关问题