【发布时间】:2015-09-03 12:46:55
【问题描述】:
我有一个这样布置的表:
id | name | count
1 | John |
2 | Jim |
3 | John |
4 | Tim |
我需要填写计数列,结果是特定名称出现在列name 中的次数。
结果应该是:
id | name | count
1 | John | 2
2 | Jim | 1
3 | John | 2
4 | Tim | 1
我可以使用以下方法轻松计算唯一名称的出现次数:
SELECT COUNT(name)
FROM table
GROUP BY name
但这不适合 UPDATE 语句,因为它返回多行。
我也可以通过这样做将其缩小到一行:
SELECT COUNT(name)
FROM table
WHERE name = 'John'
GROUP BY name
但这不允许我填写整个列,只能填写“John”行。
【问题讨论】:
标签: postgresql