17573
例えば  
`SELECT genre, STD(point) FROM table GROUP BY genre;`  
の結果をgenre_std等に代入したいです。

とりあえず手動で  
`UPDATE table SET genre_std = 100 WHERE genre = 1;`  
:  
:  
等としているのですが、効率的なやり方がありそうなので
CC BY-SA 3.0
2015-10-13T02:08:53.197
17572
2015-10-13T05:32:27.170
2015-10-13T03:21:18.840
525
525
question
mysql
計算結果をカラムに代入したい
サブクエリを使って以下の様に書いてみました。

```

    UPDATE
      table t1,
      (
        SELECT genre, STD(point) AS std
        FROM table GROUP BY genre
      ) t2
    SET
      t1.genre_std = t2.std
    WHERE
      t1.genre = t2.genre
    
```
CC BY-SA 3.0
2015-10-13T02:41:56.563
17573
2015-10-13T02:41:56.563
17572
answer
MySQLではupdate文にcross joinが使えるので次のように書けます。

```

    UPDATE table A,
    (SELECT genre, STD(point) point_std FROM table GROUP BY genre) B
    set genre_std = point_std
    where A.genre = B.genre;
    
```
CC BY-SA 3.0
2015-10-13T05:32:27.170
17588
2015-10-13T05:32:27.170
12620
17572
answer