使用同一个表的另一列的group by值插入到列中

时间:2015-08-24 15:27:59

标签: mysql sql

id name count
------------
1  abc
2  xyz
3  xyz
4  xyz

以下查询“按名称从临时组中选择计数(名称);”给了我:

count(name)
--------
1
3

我希望将此结果更新为“count”列。确切地说,我希望我的桌子看起来像:

id name count
------------
1  abc   1
2  xyz   3
3  xyz   3
4  xyz   3

1 个答案:

答案 0 :(得分:1)

您可以使用COUNT / GROUP BY获取这些值。您可以执行UPDATE语句,将表与子查询连接起来: -

UPDATE temp a
INNER JOIN
(
  SELECT name, COUNT(*) AS name_count
  FROM temp
  GROUP BY name
  ) b
  ON a.name = b.name
SET a.name_count = b.name_count;