1

私は2つのテーブルを持っています:

CARMAKES
id, name, avg_sold_for

SALES
carmake_id, price

私がやりたいことは、単一の SQL ステートメントを使用して次のことを行うことです。CARMAKES のすべての行について、avg_sold_for フィールドは SALES のすべての価格フィールドの平均を表示する必要があります。ここで、carmake_id は CARMAKES から指定された ID と一致します。

例では:

CARMAKES
id, name, avg_sold_for
0, "Toyota", 0
1, "Nissan", 0

SALES
carmake_id, price
0, 10
1, 20
0, 30
0, 20

CARMAKES テーブルを次のように更新したい

CARMAKES
id, name, avg_sold_for
0, "Toyota", 20
1, "Nissan", 20
4

1 に答える 1

0

これを試して:

UPDATE CARMAKES
SET avg_sold_for = (SELECT SUM(price) / COUNT(carmake_id) 
                    FROM SALES WHERE CARMAKES.id = SALES.carmake_id)

また

UPDATE CARMAKES C 
INNER JOIN (SELECT carmake_id, (SUM(price) / COUNT(carmake_id)) avg_sold_for
            FROM SALES GROUP BY carmake_id) A ON C.id = A.carmake_id
SET C.avg_sold_for = A.avg_sold_for 
于 2013-07-11T15:07:11.860 に答える