HackerRank第一趴--Basic Select
CITY表:
Field | Type |
ID | number |
NAME | VARCHAR2(17) |
COUNTRYCODE | VARCHAR2(3) |
DISTRICT | VARCHAR2(20) |
POPULATION | number |
1.Revising the Select Query I
Query all columns for all American cities in the CITY table with populations larger than 100000
. The CountryCode for America is USA
.
select * from CITY
where POPULATION>=100000 and COUNTRYCODE='USA';
2.Revising the Select Query II
Query the NAME field for all American cities in the CITY table with populations larger than 120000
. The CountryCode for America is USA
.
select Name from CITY
where COUNTRYCODE ='USA' and POPULATION>=120000;
3.Select All
Query all columns (attributes) for every row in the CITY table.
select * from CITY;
4.Select By ID
Query all columns for a city in CITY with the ID 1661
.
select * from CITY
where ID =1661;
5.Japanese Cities' Attribute
Query all attributes of every Japanese city in the CITY table. The COUNTRYCODE for Japan is JPN
.
select * from CITY
where COUNTRYCODE='JPN';
6.Japanese Cities' Name
Query the names of all the Japanese cities in the CITY table. The COUNTRYCODE for Japan is JPN
.
select NAME
from CITY
where COUNTRYCODE='JPN'
7.
Query a count of the number of cities in CITY having a Population larger than 10,000.
select count(NAME)
from CITY
where POPULATION>100000;
8.Query the total population of all cities in CITY where District is California.
select sum(POPULATION)
from CITY
where DISTRICT ='California';
9.Query the average population of all cities in CITY where District is California.
select avg(POPULATION)
from CITY
where DISTRICT='California';
10.Query the average population for all cities in CITY, rounded down to the nearest integer.
select ROUND(avg(POPULATION),0)
from CITY;
11.Query the sum of the populations for all Japanese cities in CITY. The COUNTRYCODE for Japan is JPN.
select sum(POPULATION)
from CITY
where COUNTRYCODE='JPN';
12.Query the difference between the maximum and minimum populations in CITY.
select max(POPULATION)-min(POPULATION)
from CITY;
13.Given the CITY and COUNTRY tables, query the sum of the populations of all cities where the CONTINENT is 'Asia'.
Note: CITY.CountryCode and COUNTRY.Code are matching key columns.
select sum(c.POPULATION) from CITY c
left join COUNTRY c1
on c.COUNTRYCODE=c1.CODE
where c1.CONTINENT ='Asia';
14.Given the CITY and COUNTRY tables, query the names of all cities where the CONTINENT is 'Africa'.
Note: CITY.CountryCode and COUNTRY.Code are matching key columns.
select c.NAME
from CITY c
left join COUNTRY c1
on c.COUNTRYCODE=c1.CODE
where c1.CONTINENT='Africa';
15.
STUDENTS表:
Field | Type |
ID | INTEGER |
Name | String |
Maks | INTEGER |
1.Query the Name of any student in STUDENTS who scored higher than Marks. Order your output by the last three characters of each name. If two or more students both have names ending in the same last three characters (i.e.: Bobby, Robby, etc.), secondary sort them by ascending ID.
查询 STUDENTS 中任何得分高于 75 的学生的姓名。 按每个名称的最后三个字符对输出进行排序。 如果两个或多个学生的名字都以相同的最后三个字符结尾(即:Bobby.Robby 等),则按 ID 升序对他们进行二次排序。
select Name from STUDENTS
where Marks>75
order by right(Name,3),ID;
解题思路,按照每个名字的最后三个字符排序,order by 和right函数结合使用。
Employee表:
Field | Type |
employee_id | INTEGER |
name | String |
months | INTEGER |
salary | INTEGER |
1.Write a query that prints a list of employee names (i.e.: the name attribute) from the Employee table in alphabetical order.
select name
from Employee
order by name;
2.Write a query that prints a list of employee names (i.e.: the name attribute) for employees in Employee having a salary greater than per month who have been employees for less than months. Sort your result by ascending employee_id.
编写一个查询,打印员工姓名列表(即:名称属性),用于 Employee 中薪水大于每月且工作时间少于几个月的员工。 按employee_id 升序对结果进行排序。
select name
from Employee
where salary>2000 and months<10
order by employee_id;
3.We define an employee's total earnings to be their monthly salary*months worked, and the maximum total earnings to be the maximum total earnings for any employee in the Employee table. Write a query to find the maximum total earnings for all employees as well as the total number of employees who have maximum total earnings. Then print these values as 2 space-separated integers.
我们将员工的总收入定义为他们的月薪*工作月数,最大总收入定义为 Employee 表中任何员工的最大总收入。 编写查询以查找所有员工的最大总收入以及拥有最大总收入的员工总数。 然后将这些值打印为 2 个空格分隔的整数。
select salary*months as earning,count(name)
from Employee
group by earning
order by earning desc
limit 1;
4.
------------恢复内容开始------------
CITY表:
Field | Type |
ID | number |
NAME | VARCHAR2(17) |
COUNTRYCODE | VARCHAR2(3) |
DISTRICT | VARCHAR2(20) |
POPULATION | number |
1.Query all columns for all American cities in the CITY table with populations larger than 100000
. The CountryCode for America is USA
.
select * from CITY
where POPULATION>=100000 and COUNTRYCODE='USA';
2.Query the NAME field for all American cities in the CITY table with populations larger than 120000
. The CountryCode for America is USA
.
select Name from CITY
where COUNTRYCODE ='USA' and POPULATION>=120000;
3.Query all columns (attributes) for every row in the CITY table.
select * from CITY;
4.Query all columns for a city in CITY with the ID 1661
.
select * from CITY
where ID =1661;
5.Query all attributes of every Japanese city in the CITY table. The COUNTRYCODE for Japan is JPN
.
select * from CITY
where COUNTRYCODE='JPN';
6.Query the names of all the Japanese cities in the CITY table. The COUNTRYCODE for Japan is JPN
.
select NAME
from CITY
where COUNTRYCODE='JPN'
7.Query a count of the number of cities in CITY having a Population larger than 10,000.
select count(NAME)
from CITY
where POPULATION>100000;
8.Query the total population of all cities in CITY where District is California.
select sum(POPULATION)
from CITY
where DISTRICT ='California';
9.Query the average population of all cities in CITY where District is California.
select avg(POPULATION)
from CITY
where DISTRICT='California';
10.Query the average population for all cities in CITY, rounded down to the nearest integer.
select ROUND(avg(POPULATION),0)
from CITY;
11.Query the sum of the populations for all Japanese cities in CITY. The COUNTRYCODE for Japan is JPN.
select sum(POPULATION)
from CITY
where COUNTRYCODE='JPN';
12.Query the difference between the maximum and minimum populations in CITY.
select max(POPULATION)-min(POPULATION)
from CITY;
13.Given the CITY and COUNTRY tables, query the sum of the populations of all cities where the CONTINENT is 'Asia'.
Note: CITY.CountryCode and COUNTRY.Code are matching key columns.
select sum(c.POPULATION) from CITY c
left join COUNTRY c1
on c.COUNTRYCODE=c1.CODE
where c1.CONTINENT ='Asia';
14.Given the CITY and COUNTRY tables, query the names of all cities where the CONTINENT is 'Africa'.
Note: CITY.CountryCode and COUNTRY.Code are matching key columns.
select c.NAME
from CITY c
left join COUNTRY c1
on c.COUNTRYCODE=c1.CODE
where c1.CONTINENT='Africa';
15.Given the CITY and COUNTRY tables, query the names of all the continents (COUNTRY.Continent) and their respective average city populations (CITY.Population) rounded down to the nearest integer.
给定 CITY 和 COUNTRY 表,查询所有大洲的名称 (COUNTRY.Continent) 及其各自的平均城市人口 (CITY.Population),四舍五入到最接近的整数。
Note: CITY.CountryCode and COUNTRY.Code are matching key columns.
select c.Continent,FLOOR(avg(c1.population))
from COUNTRY c
join CITY c1
on c.CODE=c1.CountryCode
group by 1;
STATION表:
Field | Type |
ID | number |
CITY | VARCHAR2(21) |
STATE | VARCHAR2(2) |
LAT_N | number |
LONG_W | number |
1.Query a list of CITY and STATE from the STATION table.
select CITY,STATE
from STATION;
2.Query a list of CITY names from STATION for cities that have an even ID number. Print the results in any order, but exclude duplicates from the answer.
从 STATION 查询具有偶数 ID 号的城市的 CITY 名称列表。 以任意顺序打印结果,但从答案中排除重复项。
select DISTINCT(CITY)
from STATION
where mod(ID,2)=0;
3.Find the difference between the total number of CITY entries in the table and the number of distinct CITY entries in the table.
求表中 CITY 条目总数与表中不同 CITY 条目数之间的差值。
select COUNT(CITY)-COUNT(DISTINCT(CITY))
from STATION;
4.Query the two cities in STATION with the shortest and longest CITY names, as well as their respective lengths (i.e.: number of characters in the name). If there is more than one smallest or largest city, choose the one that comes first when ordered alphabetically.
用最短和最长的 CITY 名称查询 STATION 中的两个城市,以及它们各自的长度(即:名称中的字符数)。 如果有多个最小或最大的城市,请选择按字母顺序排列的第一个城市。
方法1: where子句+limit
select CITY,length(CITY) from STATION
where length(CITY)>=ALL(select length(CITY) from STATION) or length(CITY)<=ALL(select length(CITY) from STATION)
order by 2 desc,1
limit 2;
解题思路:
方法2:union+limit
(select CITY,length(CITY) from STATION
order by 2 desc,1 desc
limit 1)
union
(select CITY,length(CITY) from STATION
order by 2,1
limit 1);
解题思路:两个表组合。
5.Query the list of CITY names starting with vowels (i.e., a
, e
, i
, o
, or u
) from STATION. Your result cannot contain duplicates.
从 STATION 查询以元音开头的 CITY 名称列表(即 a.e.i.o 或 u)。 您的结果不能包含重复项。
select DISTINCT(CITY)
from STATION
where CITY LIKE'a%' or CITY LIKE'e%' or CITY LIKE'i%' or CITY LIKE'o%' or CITY LIKE'u%';
6.Query the list of CITY names ending with vowels (a, e, i, o, u) from STATION. Your result cannot contain duplicates.
从 STATION 查询以元音结尾的 CITY 名称列表(即 a.e.i.o 或 u)。 您的结果不能包含重复项。
select DISTINCT(CITY)
from STATION
where CITY LIKE '%a' or CITY LIKE '%e' or CITY LIKE '%i' or CITY LIKE '%o' or CITY LIKE '%u';
7.Query the list of CITY names from STATION which have vowels (i.e., a, e, i, o, and u) as both their first and last characters. Your result cannot contain duplicates.
从 STATION 查询以元音开头和结尾的 CITY 名称列表(即 a.e.i.o 或 u)。 您的结果不能包含重复项。
select DISTINCT(CITY)
from STATION
where (CITY LIKE '%a' or CITY LIKE '%e' or CITY LIKE '%i' or CITY LIKE '%o' or CITY LIKE '%u') and (CITY LIKE'a%' or CITY LIKE'e%' or CITY LIKE'i%' or CITY LIKE'o%' or CITY LIKE'u%');
8.Query the list of CITY names from STATION that do not start with vowels. Your result cannot contain duplicates.
从 STATION 查询不能以元音开头的 CITY 名称列表(即 a.e.i.o 或 u)。 您的结果不能包含重复项。
select DISTINCT(CITY)
from STATION
where CITY NOT LIKE 'a%' and CITY NOT LIKE 'e%' and CITY NOT LIKE 'i%' and CITY NOT LIKE 'o%' and CITY NOT LIKE 'u%';
9.Query the list of CITY names from STATION that do not end with vowels. Your result cannot contain duplicates.
从 STATION 查询不能以元音结尾的 CITY 名称列表(即 a.e.i.o 或 u)。 您的结果不能包含重复项。
select DISTINCT(CITY)
from STATION
where CITY NOT LIKE '%a' and CITY NOT LIKE '%e' and CITY NOT LIKE '%i' and CITY NOT LIKE '%o' and CITY NOT LIKE '%u';
10.Query the list of CITY names from STATION that either do not start with vowels or do not end with vowels. Your result cannot contain duplicates.
从 STATION 查询不以元音开头或不以元音结尾的 CITY 名称列表。 您的结果不能包含重复项。
select DISTINCT(CITY)
from STATION
where (CITY NOT LIKE 'a%' and CITY NOT LIKE 'e%' and CITY NOT LIKE 'i%' and CITY NOT LIKE 'o%' and CITY NOT LIKE 'u%') or (CITY NOT LIKE '%a' and CITY NOT LIKE '%e' and CITY NOT LIKE '%i' and CITY NOT LIKE '%o' and CITY NOT LIKE '%u');
11.Query the list of CITY names from STATION that do not start with vowels and do not end with vowels. Your result cannot contain duplicates.
从 STATION 查询不以元音开头和不以元音结尾的 CITY 名称列表。 您的结果不能包含重复项。
select DISTINCT(CITY)
from STATION
where (CITY NOT LIKE 'a%' and CITY NOT LIKE 'e%' and CITY NOT LIKE 'i%' and CITY NOT LIKE 'o%' and CITY NOT LIKE 'u%') and (CITY NOT LIKE '%a' and CITY NOT LIKE '%e' and CITY NOT LIKE '%i' and CITY NOT LIKE '%o' and CITY NOT LIKE '%u');
12.Query the following two values from the STATION table:
The sum of all values in LAT_N rounded to a scale of 2 decimal places.
The sum of all values in LONG_W rounded to a scale of 2 decimal places.
select ROUND(sum(LAT_N),2),ROUND(sum(LONG_W),2)
from STATION;
13.Query the sum of Northern Latitudes (LAT_N) from STATION having values greater than 38.7880 and less than 137.2345. Truncate your answer to 4 decimal places.
select ROUND(sum(LAT_N),4)
from STATION
where LAT_N>38.7880 and LAT_N<137.2345;
14.Query the greatest value of the Northern Latitudes (LAT_N) from STATION that is less than137.2345 . Truncate your answer to 4 decimal places.
select ROUND(max(LAT_N),4)
from STATION
where LAT_N<137.2345;
15.Query the Western Longitude (LONG_W) for the largest Northern Latitude (LAT_N) in STATION that is less than 137.3245. Round your answer to 4 decimal places.
select ROUND(LONG_W,4)
from STATION
where LAT_N<137.2345
order by LAT_N desc
limit 1;
16.Query the smallest Northern Latitude (LAT_N) from STATION that is greater than 38.7880. Round your answer to 4 decimal places.
select ROUND(LAT_N,4)
from STATION
where LAT_N>38.7880
order by 1
limit 1;
17.
Query the Western Longitude (LONG_W)where the smallest Northern Latitude (LAT_N) in STATION is greater than 38.7880. Round your answer to decimal places.
select ROUND(LONG_W,4)
from STATION
where LAT_N>38.7880
order by LAT_N
limit 1;
18.Weather Observation Station 18
Consider p1(a,b) and p2(c,d) to be two points on a 2D plane.
- a happens to equal the minimum value in Northern Latitude (LAT_N in STATION).
- b happens to equal the minimum value in Western Longitude (LONG_W in STATION).
- c happens to equal the maximum value in Northern Latitude (LAT_N in STATION).
- d happens to equal the maximum value in Western Longitude (LONG_W in STATION).
Query the Manhattan Distance between points and and round it to a scale of 4 decimal places.
select ROUND(max(LAT_N)-min(LAT_N)+max(LONG_W)-min(LONG_W),4)
from STATION;
19.Weather Observation Station 19
Consider p1 and p2 to be two points on a 2D plane where a,c are the respective minimum and maximum values of Northern Latitude (LAT_N) and b,d are the respective minimum and maximum values of Western Longitude (LONG_W) in STATION.
将 p1 和 p2 视为 2D 平面上的两个点,其中 a,c 是北纬 (LAT_N) 的相应最小值和最大值,b,d 是 STATION 中西经 (LONG_W) 的相应最小值和最大值。
Query the following two values from the STATION table:
1.The sum of all values in LAT_N rounded to a scale of 2 decimal places.
2.The sum of all values in LONG_W rounded to a scale of 2 decimal places.
select ROUND(sum(LAT_N),2),ROUND(sum(LONG_W),2)
from STATION;
19.
STUDENTS表:
Field | Type |
ID | INTEGER |
Name | String |
Maks | INTEGER |
1.Query the Name of any student in STUDENTS who scored higher than Marks. Order your output by the last three characters of each name. If two or more students both have names ending in the same last three characters (i.e.: Bobby, Robby, etc.), secondary sort them by ascending ID.
查询 STUDENTS 中任何得分高于 75 的学生的姓名。 按每个名称的最后三个字符对输出进行排序。 如果两个或多个学生的名字都以相同的最后三个字符结尾(即:Bobby.Robby 等),则按 ID 升序对他们进行二次排序。
select Name from STUDENTS
where Marks>75
order by right(Name,3),ID;
解题思路,按照每个名字的最后三个字符排序,order by 和right函数结合使用。
Employee表:
Field | Type |
employee_id | INTEGER |
name | String |
months | INTEGER |
salary | INTEGER |
1.Write a query that prints a list of employee names (i.e.: the name attribute) from the Employee table in alphabetical order.
select name
from Employee
order by name;
2.Write a query that prints a list of employee names (i.e.: the name attribute) for employees in Employee having a salary greater than per month who have been employees for less than months. Sort your result by ascending employee_id.
编写一个查询,打印员工姓名列表(即:名称属性),用于 Employee 中薪水大于每月且工作时间少于几个月的员工。 按employee_id 升序对结果进行排序。
select name
from Employee
where salary>2000 and months<10
order by employee_id;
3.We define an employee's total earnings to be their monthly salary*months worked, and the maximum total earnings to be the maximum total earnings for any employee in the Employee table. Write a query to find the maximum total earnings for all employees as well as the total number of employees who have maximum total earnings. Then print these values as 2 space-separated integers.
我们将员工的总收入定义为他们的月薪*工作月数,最大总收入定义为 Employee 表中任何员工的最大总收入。 编写查询以查找所有员工的最大总收入以及拥有最大总收入的员工总数。 然后将这些值打印为 2 个空格分隔的整数。
select salary*months as earning,count(name)
from Employee
group by earning
order by earning desc
limit 1;
4.
------------恢复内容结束------------
HackerRank第一趴--Basic Select的更多相关文章
- SQL Fundamentals: Basic SELECT statement基本的select语句(控制操作的现实列)(FROM-SELECT)
SQL Fundamentals || Oracle SQL语言 Capabilities of the SELECT Statement(SELECT语句的功能) Data retrieval fr ...
- 牛客SQL刷题第一趴——非技术入门基础篇
user_profile表: id device_id gender age university province 1 2138 male 21 北京大学 Beijing 2 3214 male ...
- PHP基础知识第一趴
今天来贴一贴我的一张部分php基础知识的思维导图.未完,待续......慢慢'补枪'(为了让引号内的期望输出内容<strong>变成</strong>现实,应该使用双引号?那就 ...
- oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数
花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...
- 使用SQL语句查询日期(当月天数,当月第一天,当月最后一天,本年最后一天,当月第一个星期) 日期转字符串
取某月天数:,) --当月天数 ,DATEADD(m, DATEDIFF(m,,getdate())+,))) ---当月第一天 ,getdate()) ---当月最后一天 ,dateadd(m,,d ...
- SQL查询一个月第一天/最后一天及日期格式化
1.一个月第一天的Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2.本周的星期一Select DATEADD(wk, DATEDIFF(wk,0,ge ...
- SQLSERVER取当前月第一天和最后一天
--本月第一天: select dateadd(dd,-day(getdate())+1,getdate()) --本月最后一天: SELECT dateadd(ms,-3,DATEADD(mm, ...
- select中无法使用click的处理
今天工作用到了select,想要给option添加click点击事件,可是却没有任何效果,百度了才发现,原来竟然是不支持呀! 众所周知(其实我才知道哎),在IE里, select的option是不支持 ...
- java 和 mysql 获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)
获取周的第一天,最后一天 System.out.println(getStartEndDate("2016-05-01", 1)); 获取星期的第一天和最后一天 System.ou ...
随机推荐
- 团队Beta3
队名:观光队 链接 组长博客 作业博客 组员实践情况 王耀鑫 **过去两天完成了哪些任务 ** 文字/口头描述 学习 展示GitHub当日代码/文档签入记录 接下来的计划 完成短租车,页面美化 **还 ...
- NuGet包管理平台
这节来讲一下.NET下的包管理平台:NuGet. 我们做一个项目,除了自己的代码文件之外,实际上还要引用诸多代码文件,这些文件可能是我们自己封装的底层框架代码,或者为了完成某个功能而引用的工具类文件等 ...
- Unreal 输入系统 解析
前言 输入系统,输入某个键,响应到GamePlay层做对应的事.例如 点击鼠标,前进还是开枪之类,是如何响应的.这里只说应用层逻辑,硬件层逻辑不讲述. 详解 1.问题来源 先看下面一个例子:跳跃的事件 ...
- ONNXRuntime学习笔记(二)
继上一篇计划的实践项目,这篇记录我训练模型相关的工作. 首先要确定总体目标:训练一个pytorch模型,CIFAR-100数据集测试集acc达到90%:部署后推理效率达到50ms/张, 部署平台为wi ...
- Linux 30岁,这些年经历了什么?
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 3月19日,Linux基金会在Twitter上发布推文宣布,其小企鹅的标志"Tux& ...
- height不确定时,如何使用动画效果展开高度
要点: 当元素 height 不确定时,可以使用 max-height 设置动画效果 a[href="foldBox"] 用于打开 #foldBox(利用伪元素 :target) ...
- 手脱无名壳tslgame_rl
1.使用Detect It Easy查壳,该壳未显示出壳信息,至于为何有壳,我们使用IDA打开,查看其的导入表,其中没有太多函数使用: 2.我们使用x32dbg打开,运行至入口点,此处没有pushad ...
- 并发编程之volatile与JMM多线程内存模型
一.通过程序看现象 在开始为大家讲解Java 多线程缓存模型之前,我们先看下面的这一段代码.这段代码的逻辑很简单:主线程启动了两个子线程,一个线程1.一个线程2.线程1先执行,sleep睡眠2秒钟之后 ...
- 个人NuGet服务搭建,BaGet保姆及部署教程
前言 应该或许大概每个公司都会有自己的NuGet包仓库吧. 不会吧!不会吧!不会吧!不会还没有自己的仓NuGet仓库吧! 开个玩笑,虽然我觉得有没有无所谓,但是为了这篇博客它必须有所谓. 在工具的选择 ...
- 被迫开始学习Typescript —— vue3的 props 与 interface
vue3 的 props Vue3 的 props ,分为 composition API 的方式以及 option API 的方式,可以实现运行时判断类型,验证属性值是否符合要求,以及提供默认值等功 ...