Change Dir

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

          統計

          留言簿(18)

          積分與排名

          “牛”們的博客

          各個公司技術

          我的鏈接

          淘寶技術

          閱讀排行榜

          評論排行榜

          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的挑戰會是一個不錯的平臺,大家加油~~

          posted on 2015-01-27 16:23 changedi 閱讀(2873) 評論(4)  編輯  收藏 所屬分類: 數據

          評論

          # 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
          不行嗎?  回復  更多評論   

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

          1.能否詳細介紹下LeetCode?
          2.以后發隨筆能否用中文標題,很多人看到英文標題就直接跳過了。  回復  更多評論   

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

          @京山游俠
          這個sql當然可以,我的sql在hive通用
            回復  更多評論   

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

          @京山游俠
          不是所有都是英文標題,leetcode是個算法題目的測試平臺,類似ACM算法競賽的很多OJ  回復  更多評論   

          主站蜘蛛池模板: 钟山县| 惠安县| 义马市| 固镇县| 吉林省| 峡江县| 星子县| 澎湖县| 聂拉木县| 浦江县| 永州市| 华坪县| 隆林| 桓台县| 株洲县| 冀州市| 沙坪坝区| 颍上县| 双牌县| 阿拉善右旗| 奉化市| 松阳县| 平山县| 福海县| 仁化县| 兴海县| 道孚县| 敦煌市| 崇义县| 济宁市| 竹山县| 聊城市| 台湾省| 上饶市| 阜康市| 石河子市| 阳泉市| 大名县| 丰都县| 个旧市| 无锡市|