如何使用SQLITE将表中的值映射到正确的行
我有以下数据:如何使用SQLITE将表中的值映射到正确的行,sql,sqlite,Sql,Sqlite,我有以下数据: supplier count 120 50 121 45 129 151 0.5 我有一张桌子如下 Catergory Discription number_of_suppliers A count NULL B 0<=count<40
supplier count
120 50
121 45
129
151 0.5
我有一张桌子如下
Catergory Discription number_of_suppliers
A count NULL
B 0<=count<40
C 40.1<count
我想将其映射如下:
Catergory Discription number of suppliers
A count NULL 1 //129
B 0<=count<40 1 //151
C 40.1<count 2 //120,121
我知道应该是这样的:
Update categories set number_of_suppliers = sum(case when count>0 and count<40 then 1 else 0 end ) where Category=A
from suppliers
但这意味着我需要运行此查询3次。。每排一个。
有没有一种方法可以通过一个更新查询来实现这一点?对于现有的数据结构,这很难做到。相反,修复第二个表,使其看起来像
Category Description min_suppliers max_suppliers
A count NULL 0 0
B 0<count<40 1 40
C 40.1<count 41 NULL
然后,您可以按以下方式进行更新:
update categories
set category = (select t2.category
from t2
where categories.num_suppliers >= t2.min_suppliers and
(categories.num_suppliers <= t2.max_suppliers or t2.max_suppliers is null)
);
嗨,我想到了,但是这个有问题。0与null不同。它应该是:null到null,0到40,40.1到无限