Leetcode-Database-175-Combine Two Tables-Easy

Leetcode-Database-175-Combine Two Tables-Easy

大概上周看到leetcode开始做数据相关的挑战题目,目前是基于MySQLSql测试题目。作为一个现在hive sql占掉大部分工作时间的码农,还是可以选择来练练手,今天立帖把这些题目一一解决。

 

第一题的描述:题目地址:https://oj.leetcode.com/problems/combine-two-tables/

一张表叫做Person,主键是PersonId

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| PersonId    | int     |
| FirstName   | varchar |
| LastName    | varchar |
+-------------+---------+

 

另一张表叫做Address,主键是AddressId

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| AddressId   | int     |
| PersonId    | int     |
| City        | varchar |
| State       | varchar |
+-------------+---------+

 

 

题目要求写一个sql完成查询任务:把Person表中每个人的FirstNameLastNameCityState都查询出来。

这明显是个非常简单的sql,只要拿Person表做左表进行left outer join即可(当然做右表进行right join也行)

 1 select
 2     o1.FirstName
 3     ,o1.LastName
 4     ,o2.City
 5     ,o2.State
 6 from(
 7     select * from Person
 8 )o1
 9 left outer join(
10     select * from Address
11 )o2
12 on(o1.PersonId = o2.PersonId)

 

最后,啰嗦几句,在我们现在的软件开发过程中,数据处理应该是一个工程师必备的技能,身在大公司,可能sql的编写有很多的限制,有的甚至不需要工程师来编写,直接交给DBA就行了。在这样的环境下,开发工程师往往丢掉了数据库的基本功。而在大数据的浪潮下,在hive\pig\ODPS下编写 sql 也成了数据开发工程师的基本技能,数据开发不能仅仅停留在写sql实现功能,最重要的是理解Hadoop生态下,各种sql语句的原理。就像开发一样,要写出最高效的sql来处理数据。我相信leetcode对于sql的挑战会是一个不错的平台,大家加油~~



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。