Leetcode 595. Big Countries
595. Big Countries
原题目链接:595. Big Countries
有一个叫做World的表格。
+-----------------+------------+------------+--------------+---------------+ | name | continent | area | population | gdp | +-----------------+------------+------------+--------------+---------------+ | Afghanistan | Asia | 652230 | 25500100 | 20343000 | | Albania | Europe | 28748 | 2831741 | 12960000 | | Algeria | Africa | 2381741 | 37100000 | 188681000 | | Andorra | Europe | 468 | 78115 | 3712000 | | Angola | Africa | 1246700 | 20609294 | 100990000 | +-----------------+------------+------------+--------------+---------------+
大国家的定义是面积大于300万平方公里或者人口超过2500万。
写一条SQL查询语句输出打国家的name, population和area。
比如,根据上述表格,我们应该输出:
+--------------+-------------+--------------+ | name | population | area | +--------------+-------------+--------------+ | Afghanistan | 25500100 | 652230 | | Algeria | 37100000 | 2381741 | +--------------+-------------+--------------+
Solution
方法一:采用WHERE和OR语句[Accepted]
Intuition
在SQL语句当中采用WHERE语句来过滤记录并得到目标国家列表。
Algorithm
根据定义,大国家需要满足以下两个条件当中的一条:
- 国土面积超过300万平方公里;
- 人口超过2500万。
对于第一个条件,我们可以用以下代码得到这一类型的大国家。
1 | SELECT name, population, area FROM world WHERE area > 3000000 |
另外,我们可以用以下代码得到人口超过2500万的大国家。
1 | SELECT name, population, area FROM world WHERE population > 25000000 |
正如大部分人脑海当中所呈现的,我们可以使用OR将两个解决方案联合到一起。
MySQL
1 | SELECT |
方法二:采用WHERE语句和UNION语句[Accepted]
Algorithm
整体的方法其实和方法一差不多。但是我们采用UNION来代替OR。
MySQL
1 | SELECT |
注意:这个方案会比方法一运行起来稍微快那么一丢丢,但是差别不太大。