Change Dir

          先知cd——熱愛生活是一切藝術(shù)的開始

          導(dǎo)航

          <2015年1月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          公告

          寫下來(lái)的都是資源,分享給互聯(lián)網(wǎng)~~均屬原創(chuàng)隨筆。
          轉(zhuǎn)載引用請(qǐng)注明作者changedi。
          喜歡應(yīng)用研究,熱愛編程,歡迎交流。

          隨筆分類(125)

          隨筆檔案(123)

          統(tǒng)計(jì)

          留言簿(18)

          積分與排名

          “牛”們的博客

          各個(gè)公司技術(shù)

          我的鏈接

          淘寶技術(shù)

          閱讀排行榜

          評(píng)論排行榜

          Leetcode-Database-175-Combine Two Tables-Easy

          大概上周看到leetcode開始做數(shù)據(jù)相關(guān)的挑戰(zhàn)題目,目前是基于MySQLSql測(cè)試題目。作為一個(gè)現(xiàn)在hive sql占掉大部分工作時(shí)間的碼農(nóng),還是可以選擇來(lái)練練手,今天立帖把這些題目一一解決。

           

          第一題的描述:題目地址: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 |
          +-------------+---------+

           

           

          題目要求寫一個(gè)sql完成查詢?nèi)蝿?wù):把Person表中每個(gè)人的FirstNameLastNameCityState都查詢出來(lái)。

          這明顯是個(gè)非常簡(jiǎn)單的sql,只要拿Person表做左表進(jìn)行left outer join即可(當(dāng)然做右表進(jìn)行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)

           

          最后,啰嗦幾句,在我們現(xiàn)在的軟件開發(fā)過(guò)程中,數(shù)據(jù)處理應(yīng)該是一個(gè)工程師必備的技能,身在大公司,可能sql的編寫有很多的限制,有的甚至不需要工程師來(lái)編寫,直接交給DBA就行了。在這樣的環(huán)境下,開發(fā)工程師往往丟掉了數(shù)據(jù)庫(kù)的基本功。而在大數(shù)據(jù)的浪潮下,在hive\pig\ODPS下編寫 sql 也成了數(shù)據(jù)開發(fā)工程師的基本技能,數(shù)據(jù)開發(fā)不能僅僅停留在寫sql實(shí)現(xiàn)功能,最重要的是理解Hadoop生態(tài)下,各種sql語(yǔ)句的原理。就像開發(fā)一樣,要寫出最高效的sql來(lái)處理數(shù)據(jù)。我相信leetcode對(duì)于sql的挑戰(zhàn)會(huì)是一個(gè)不錯(cuò)的平臺(tái),大家加油~~

          posted on 2015-01-27 16:23 changedi 閱讀(2876) 評(píng)論(4)  編輯  收藏 所屬分類: 數(shù)據(jù)

          評(píng)論

          # re: Leetcode-Database-175-Combine Two Tables-Easy 2015-01-31 17:55 京山游俠

          select
          o1.FirstName
          ,o1.LastName
          ,o2.City
          ,o2.State
          from
          Person as o1
          ,Address as o2
          where
          o1.PersonId = o2.PersonId
          不行嗎?  回復(fù)  更多評(píng)論   

          # re: Leetcode-Database-175-Combine Two Tables-Easy 2015-01-31 17:57 京山游俠

          1.能否詳細(xì)介紹下LeetCode?
          2.以后發(fā)隨筆能否用中文標(biāo)題,很多人看到英文標(biāo)題就直接跳過(guò)了。  回復(fù)  更多評(píng)論   

          # re: Leetcode-Database-175-Combine Two Tables-Easy 2015-02-02 10:33 changedi

          @京山游俠
          這個(gè)sql當(dāng)然可以,我的sql在hive通用
            回復(fù)  更多評(píng)論   

          # re: Leetcode-Database-175-Combine Two Tables-Easy 2015-02-02 10:35 changedi

          @京山游俠
          不是所有都是英文標(biāo)題,leetcode是個(gè)算法題目的測(cè)試平臺(tái),類似ACM算法競(jìng)賽的很多OJ  回復(fù)  更多評(píng)論   

          主站蜘蛛池模板: 马关县| 乌什县| 香港| 洞口县| 禹州市| 潢川县| 克拉玛依市| 类乌齐县| 东港市| 临桂县| 郧西县| 阳山县| 习水县| 蓬安县| 周口市| 曲阜市| 靖安县| 仙游县| 竹北市| 石阡县| 武义县| 巴彦淖尔市| 温宿县| 黔江区| 曲沃县| 株洲县| 屏东市| 永修县| 阳江市| 科技| 临清市| 乐昌市| 贵定县| 湾仔区| 田阳县| 博野县| 城市| 积石山| 保定市| 永年县| 中阳县|