实际上,我面临着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/