我正在使用SQLite,并试图找到一个好的ID的平均交易价格。我尝试用表B中该特定公司(由id标识)在该季度的所有交易的平均价格更新A.avg_price。我尝试了下面的查询,但是运行了一个多小时都没有成功--所以我想我做了一些效率低下的事情。我是SQL新手,非常感谢您的帮助!UPDATE "Table_A" AS A Set "avg_price" = (SELECT AVG ("price") FROM "Table_B" AS B WHERE A."id" = B."id")
TABLE_A
| 公司id|平均价格|
| --|--|
| 1. |NULL|
| 2. |NULL|
TABLE_B
| 公司id|日期|价格|
| --|--|--|
| 1. |23年1月1日|10元|
| 1. |23年1月4日|十二块|
| 2. |23年1月4日|十四块|
| 2. |1/10/23| 2元|
| 3. |23年1月5日|十五元|
| 1. |23年1月4日|八元|
| 3. |1/20/23|三十元|
表A的预期结果|公司id|平均价格||--|--||1.第一阶段|10元||第二,|八元||第三,|二十二块五|
1条答案
按热度按时间7rtdyuoh1#
该查询更新表A中的“avg_price”列,以包含每个公司的平均交易价格。它首先计算表B中每个公司的平均价格,并将这些平均值存储在一个名为“B”的临时表中。然后,它使用公司ID将表A中的公司与“B”中相应的平均值进行匹配。最后,它用计算出的平均值更新表A中的“avg_price”,确保每个公司的平均价格都正确地反映在表A中。