实际上,我面临着MySQL的一个问题,我需要有一个与GROUP BY相似的行为,但是不需要分组。
下面是一个示例,其中只有一个名为“resident”的表,有两列:“name”、“city”。
如果我想计算每个城市的居民数量,我只需要这样做:

SELECT resident.city, count(resident.name) as 'Nb residents'
FROM resident
GROUP BY resident.city

结果是:
| city | Nb residents |
| NY   |       3      |
| HK   |       1      |
| Rome |       2      |
...

但我正在寻找这样一种方式来展示我的结果:
|   name   |  city  |  Nb residents |
| Name1    | NY     |       3       |
| Name2    | NY     |       3       |
| Name3    | NY     |       3       |
| Name4    | HK     |       1       |
| Name5    | Rome   |       2       |
| Name6    | Rome   |       2       |

有可能吗?
谢谢你的帮助。

最佳答案

SELECT resident.name, resident.city, (select count(a.name) from resident a where a.city = resident.city) as 'Nb residents'
FROM resident

关于mysql - 根据条件对行数进行计数(类似于分组依据),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16649871/

10-13 00:47