首页 > 代码库 > LeetCode解题思路:595. Big Countries
LeetCode解题思路:595. Big Countries
There is a table 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 | +-----------------+------------+------------+--------------+---------------+
A country is big if it has an area of bigger than 3 million square km or a population of more than 25 million.
Write a SQL solution to output big countries‘ name, population and area.
For example, according to the above table, we should output:
+--------------+-------------+--------------+ | name | population | area | +--------------+-------------+--------------+ | Afghanistan | 25500100 | 652230 | | Algeria | 37100000 | 2381741 | +--------------+-------------+--------------+
题意:找到表中人口大于2500 0000或者面积大于300 0000 平方公里的国家。
解题思路:
数据库的题解题思路就比较单一了,首先知道要什么之后设定查询条件,这里有两个那么就是where 条件一 or 条件二,观察结果,表头是name,population,
area, 那么select World.name World.population World.area,没要求按照什么顺序排序所以就可以忽略排序部分,所以连起来代码如下:
1 SELECT name,population,area 2 FROM World 3 WHERE World.population>25000000 4 OR World.area>3000000;
当然也可以使用union方式,代码要稍微多一点,理论上运行会比where略快。union相当于使用两个索引同时进行查找,而or相当于从一个索引查完之后去另一个索引查。理论上是这样但是你实际运行的时候,oj对你的响应不一定那么快,所以两个可能不一定谁快谁慢
1 SELECT name, population, area 2 FROM World 3 WHERE area > 3000000 4 UNION 5 SELECT name, population, area 6 FROM World 7 WHERE population > 25000000
简单的问题,可以用来对数据库查询进行初步的掌握。
LeetCode解题思路:595. Big Countries
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。