获取相同的行数

时间:2016-12-01 14:17:45

标签: sql innodb

最近尝试学习一些sql并遇到了这个问题。 我有一个页面,显示国家名称及其在div中的资本,从我的数据库请求。但是,我想添加一个功能,用户可以根据给定国家/地区包含的人口超过100万的城市数量来订购显示。我无法弄清楚这里需要的查询。

如何获得人口超过100的同一个国家/地区内城市的数量作为整数值?我的表格格式是这样的。因此,例如,英格兰应该返回2,因为有两个英国城市符合标准,美国3,印度1等等。所以美国将出现在我新订购的结果页面的顶部,其次是英格兰,然后是印度。

我尝试过联合查询,但我无法掌握第一个查询的价值。

我该怎么做?

表A

*-----------------*------------*
| COUNTRY NAME    | CAPITAL    |
|     England     | London     |
|     India       | New Delhi  |
|      US         | DC         |
|                 |            |
*-----------------*------------*

表B

 *-----------------*------------------------------*
| COUNTRY NAME    |Cities with a population > 1m  |
|     England     | London                        |
|      England    |  Birmingham                   | 
|     India       | New Delhi                     |
|      US         | DC                            |
|       US        | New York                      |
|       US        |  LA                           |
*-----------------*-------------------------------*

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我假设表B中的所有值都是所需人口的城市。 如果没有添加where子句来限制结果..

SELECT [COUNTRY NAME], COUNT([COUNTRY NAME]) 
FROM Table B
GROUP BY [COUNTRY NAME]

答案 1 :(得分:0)

对于Oracle数据库,它将是:

select a.c_name, a.c_quan
from (select country_name c_name, count(country_name) c_quan
      from table_b
      group by country_name) a
order by a.c_quan;