SQL 查询以使用来自相同 table 的列将聚合数据插入现有列
SQL query to insert aggregated data into existing column using columns from same table
我在 sqlite 数据库中有一个 table,其中包含一个人的收入、那个人的家庭标识符和一个空的家庭收入列。我正在尝试 运行 一个查询,该查询将根据 returns 按家庭标识符分组的收入总和的子查询填写家庭收入。我的查询:
INSERT INTO customer_data (household_income)
SELECT t.total
FROM (SELECT household_id, sum(individual_income)
FROM customer_data
GROUP BY household_id
) t
WHERE customer_data.household_id = t.household_id;
但我的查询没有说明 'cannot find customer_data.household_id.' 我无法找到插入的数据来自同一 table 的示例,并且需要一个子查询来获取基于分组的聚合。对我的方法有什么想法吗?
您需要 update
。看起来相关子查询将执行您想要的操作:
UPDATE customer_data
SET household_income = (SELECT sum(cd2.individual_income)
FROM customer_data cd2
WHERE customer_data.household_id = cd2.household_id
);
我在 sqlite 数据库中有一个 table,其中包含一个人的收入、那个人的家庭标识符和一个空的家庭收入列。我正在尝试 运行 一个查询,该查询将根据 returns 按家庭标识符分组的收入总和的子查询填写家庭收入。我的查询:
INSERT INTO customer_data (household_income)
SELECT t.total
FROM (SELECT household_id, sum(individual_income)
FROM customer_data
GROUP BY household_id
) t
WHERE customer_data.household_id = t.household_id;
但我的查询没有说明 'cannot find customer_data.household_id.' 我无法找到插入的数据来自同一 table 的示例,并且需要一个子查询来获取基于分组的聚合。对我的方法有什么想法吗?
您需要 update
。看起来相关子查询将执行您想要的操作:
UPDATE customer_data
SET household_income = (SELECT sum(cd2.individual_income)
FROM customer_data cd2
WHERE customer_data.household_id = cd2.household_id
);