基于同一表中其他列的聚合更新表

时间:2015-02-19 22:18:25

标签: mysql

我现在有一个包含三列的表,看起来像这样:

A     B     C
1     a     NULL
2     a     NULL
3     a     foo
4     b     NULL
5     b     NULL
6     c     bar
7     c     NULL

我想添加一个如下所示的列D:

A     B     C     D
1     a     NULL  foo
2     a     NULL  foo
3     a     foo   foo
4     b     NULL  NULL
5     b     NULL  NULL
6     c     bar   bar
7     c     NULL  bar

换句话说,D在由B分组时从C获取非空值(如果有),我怎么能在SQL中执行此操作?如果它变得过于复杂,我只需将表格导出到文本文件,编写python脚本来计算D,然后将其添加到表格中就更加舒适。

1 个答案:

答案 0 :(得分:1)

你在这里:

UPDATE Table n
    INNER JOIN
Table m ON n.B = m.B 
SET 
n.D = m.c
WHERE
m.C IS NOT NULL;