如何用SQL统计指定列数据并将结果插入另一表指定列?
解决方法:将统计结果插入/更新到Table B
嘿,恭喜你已经成功算出了grocery_list里Apples的总数!要把这个结果写入Table B,不用手动复制那个10的数值,直接把你的统计查询嵌套到INSERT或者UPDATE语句里就行,分两种情况给你说明:
情况1:往Table B插入一条新记录
如果你的需求是新增一行来存储这个统计值,假设Table B的"total fruits"列是可以单独插入的(其他列要么允许为空,要么你也会提供对应值),可以用下面的语句:
INSERT INTO table_b ("total fruits") SELECT COUNT("fruits") FROM grocery_list WHERE "fruits" = 'Apples';
小提示:你原来WHERE子句里的
('Apples')写法是有效的,但通常我们直接用单引号包裹单个值就可以啦,也就是"fruits" = 'Apples'。
如果Table B还有其他必填列,比如record_date,那你可以这样写:
INSERT INTO table_b (record_date, "total fruits") VALUES (CURRENT_DATE, (SELECT COUNT("fruits") FROM grocery_list WHERE "fruits" = 'Apples'));
情况2:更新Table B中已有的记录
如果Table B已经存在一行(或多行)需要更新这个统计值,比如你要更新id为1的那条记录,就用UPDATE语句:
UPDATE table_b SET "total fruits" = ( SELECT COUNT("fruits") FROM grocery_list WHERE "fruits" = 'Apples' ) WHERE id = 1; -- 这里替换成你实际的筛选条件,比如日期、类别等
⚠️ 一定要加上WHERE子句!不然会把Table B里所有行的"total fruits"列都改成这个统计值,这大概率不是你想要的结果。
内容的提问来源于stack exchange,提问作者Just_some_Noob
相关产品推荐
相关产品推荐

