0

有什么方法可以为每一行使用COUNT和返回一COUNT列。如果我要使用GROUP BY它,每个值只会返回 1 行。我希望它显示重复项。

示例数据:

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

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

4

2 回答 2

3

你可以使用correlated subquery.

SELECT  a.City,
        (SELECT COUNT(*) FROM tableName b WHERE a.City = b.City) totalCount
FROM    tableName a
于 2013-07-26T19:57:28.833 回答
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

于 2013-07-26T20:08:03.687 回答