No.595-Big Countries-(LeetCode之Database篇)
数据库表
给出的数据库表如下,表名为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 |
+—————–+————+————+————–+—————+
问题表述
如果一个国家的面积大于三百万平方公里,或者人口数大于两千五百万,那么这个国家就是一个大国。
写一个SQL语句将大国的name、population、area选择出来。
问题解决
下面是我写的SQL语句:
select name,population,area
from World
where area >= 3000000 or population >= 25000000
提交后结果是正确的。提交后我去了讨论区,发现有更好的解决方案:
SELECT name, population, area
FROM World
WHERE area > 3000000
UNION
SELECT name, population, area
FROM World
WHERE population > 25000000
可以看到上面这个SQL语句执行速度是要略快于第一个SQL的,这是为什么呢?
第一个SQL我们使用了OR,第二个SQL我们使用的是UNION。
用OR的子句可以分解成多个查询,并且通过UNION 连接多个查询。他们的速度只同是否使用索引有关,如果查询需要用到联合索引,用 UNION ALL执行的效率更高,但是UNION ALL不会去除重复的行。
采用OR不会用到索引,改写成UNION的形式再试图与索引匹配。一个关键的问题是否用到索引。所以我们再使用SQL查询时尽量使用UNION,如果对重复列没有要求,则尽量使用UNION ALL。
No.595-Big Countries-(LeetCode之Database篇)的更多相关文章
- 595. Big Countries --- SQL related from leetcode
595. Big Countries There is a table World +-----------------+------------+------------+------------- ...
- LeetCode 595. Big Countries
There is a table World +-----------------+------------+------------+--------------+---------------+ ...
- LeetCode 595. Big Countries (大的国家)
题目标签: 题目给了我们一个 world table,让我们找出 面积大于3 million square km 或者 人口大于 25 million. 直接用两个条件搜索. Java Solutio ...
- c++ LeetCode (初级字符串篇) 九道算法例题代码详解(二)
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11089327.html 已经刷了很多篇leetcode题了,不过最近在找c++的实习工作(大佬 ...
- LeetCode总结 -- 高精度篇
我们常见的一些主要的数据结构比方整型int或者浮点型float由于位数过多无法用内置类型存储,这时候我们就须要自己实现高精度的数据类型来进行存储和运算.这样的问题在实际产品中还是比較有用的,所以相对来 ...
- 595. Big Countries
There is a table World +-----------------+------------+------------+--------------+---------------+ ...
- 【持续更新】leetcode算法-数组篇
会在近期陆续地完成数组篇的整理,希望对找工作的小伙伴有所帮助. 1.Two Sum:两数相加为一固定值,求其下标.一次遍历数组,用一个hash表存储已经访问过的数及其下标,对于新访问的数value ...
- leetcode中Database题(一)
Combine Two Tables Table: Person +-------------+---------+ | Column Name | Type | +-------------+--- ...
- LeetCode之Easy篇 ——(7)Reverse Integer
7.Reverse Integer Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: Out ...
- LeetCode之Easy篇 ——(1)Two Sum
1.Two Sum Given an array of integers, return indices of the two numbers such that they add up to a s ...
随机推荐
- delphi之IOCP学习(一)
困扰已久的网络通信(IOCP:完成端口),今天终于揭开她的神秘面纱了,之前百度N久还是未能理解IOCP,网络上好多博文都没有贴出源码,初学者很难正在理解IOCP并自己写出通信例子 ,经过努力,今天自己 ...
- Swift类和结构
类和结构有非常多的共同点: 定义属性存储数据 定义方法执行功能处理 定义下标,通过下标訪问他们的值 初始化他们的状态 通过扩展(Extension)扩展其功能 遵守协议(Protocol).协议提供一 ...
- Ajax打开三种页面的请求
xmlhttprequest对象可以打开两种方式的页面请求 1,.asmx格式的webservice页面. 2,.aspx格式的web窗体 其中web窗体可以是调用一新建的web窗体,同时调用和被调用 ...
- BS学习概述
从最初的牛腩新闻公布系统,到如今的JS,回想一下,自己的BS也算是学了大半,可是有时候想起来还是总是有一种不踏实的感觉,一是由于从开学到如今赶上了三级考试,自考.软考,导致BS学习时间被大大压缩了,代 ...
- TASM 5.0 安装及使用教程
安装TASM 5.0很简单,您只需要下载本站[相关工具]中的"TASM50.zip"文件,解压后在Windows9x/NT下执行"INSTALL.EXE"即可开 ...
- window下nodejs爬取gb2312网页出现乱码的解决方案
发布于 2012-8-22 18:15 5230 次浏览 最后一次编辑是 2013-2-18 22:31 linux环境下,我们可以通过 iconv 这个C++模块来处理Node.JS不支持的字 ...
- HALCON学习之算子大全
1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样本添加到一个高斯混合模型的训练数据上. 2.classify_class_gmm ...
- WPF IDataErrorInfo使用-数据对象上验证
<Window x:Class="DataBindingExam.MainWindow" xmlns="http://schemas.microsof ...
- WPF中获取TreeView以及ListView获取其本身滚动条的方法,可实现自行调节scoll滚动的位置(可相应获取任何控件中的内部滚动条)
原文:WPF中获取TreeView以及ListView获取其本身滚动条的方法,可实现自行调节scoll滚动的位置(可相应获取任何控件中的内部滚动条) 对于TreeView而言: TreeViewAut ...
- WPF X:Shared概述 - CSDN博客
原文:WPF X:Shared概述 - CSDN博客 一.含义 X:Shared用于指定请求资源时创建实例的两种方式. X:Shared = "true"(默认):表示所有请求都是 ...