2013-07-26 167 views
0

有什么方法可以使用COUNT并且每行返回COUNT列。如果我使用GROUP BY,它将只为每个值返回1行。我想要它显示重复。MYSQL COUNT返回重复行

示例数据:


西雅图
达拉斯
西雅图
纽约
波士顿
波士顿
波特兰

我想回:
西雅图2
达拉斯1
西雅图2
纽约1
波士顿2
波士顿2
波特兰1

回答

3

可以使用correlated subquery

SELECT a.City, 
     (SELECT COUNT(*) FROM tableName b WHERE a.City = b.City) totalCount 
FROM tableName a 
+0

+1什么OP真正想要的回答。 – Vucko

2

您可以加入原始表与使用GROUP BY子查询:

SELECT t1.city, citycount 
FROM myTable t1 
JOIN (SELECT city, COUNT(city) citycount 
     FROM myTable 
     GROUP BY city) t2 
USING (city) 

SQLFIDDLE

+0

这个查询看起来是正确的...我不明白为什么它已被downvoted ... – fthiella

+0

@fthiella谢谢。也许是因为我没有像491243那样添加一个sqlfiddle。修正了。 – Barmar

+0

我也下了决心。 –