0

我正在尝试按升序获取每个城市的计数编号。但是我收到错误,因为子查询返回不止一行。

例如:一张表包含所有城市、州和密码。在另一个表中,我们将列出用户记录及其对应的城市。所以我试着用它的计数来计算每个城市的用户数。

例如:表 A

City State Pincode
ABC  TN    600001
ABD  TN    600001
ABE  KA    500001
ABF  KA    500002
ABG  KA    500003
CDE  KL    500004
CDF  KL    500004

表 B

Userid Answer
1      ABC
2      ABC
3      ABD
4      ABD
5      ABD
6      ABD
7      ABE
8      ABE
9      ABD
10     ABC

查询:

SELECT count(a.answer) from table b as a where a.answer=(select distinct(b.city) from table a as b);

所以我得到子查询返回不止一行。任何人都可以帮助我解决这个问题,并且对学习 SQL Query 很有帮助。

4

2 回答 2

0

尝试这个

select count(*) as cityCount, answer 
from B inner join A on B.answer = A.city group by answer
于 2013-10-31T10:18:39.730 回答
0

我想你不明白如何使用AS关键字:它是做别名,你不需要在这里。

你正在寻找GROUP BY声明

如果您想要所有城市信息+城市的答案数量,您可以这样做:

SELECT count(b.Answer) as count_answer, City, State, Pincode 
FROM table b join a on a.City=b.Answer 
GROUP BY City

有关更多信息,请参阅 mysql 文档;)

于 2013-10-31T10:19:21.763 回答