1. 程式人生 > >Uber sql

Uber sql

  1. 給了trips,driver表格,1.要求得到每個大陸trip最多的城市,2.每天每個司機過去50天的平均trip,第二問我寫了個self join, 被追問了更好的方法,就說可能可以window function avg函式具體沒有用過,然後面試官就說可以用preceding放在partition by裡面
  2. id/date/status(canceled, complete..) 找到每個id每個date截至的cancellation rate. 即找到這個date之前所有的cancellation #/這個date之前的total ride

 

Coding:

  1. value = { 1,2,3,4,5} 
    weight = {1, 0.5, 3, 33, 17}. check 1point3acres for more.

怎麼樣sample value, 使 sample 4 的可能性使3的 11 倍。比如你有三個元素1,2,3,比重分別是500,800,1000,那麼你TreeMap裡面存的應該就是{1,500},{2,1300},{3,2300},每次隨機一個0-2299的數,落在0-499的返回1,落在500-1299的返回2,落在1300-2299的返回3.
就是說sample weight決定了value被sample到的probability。要寫個function。

‘在weight裡面,4的weight是33, 3的weight是3, 不是已經11倍了嗎?誰能解惑一下?’
意思是要你sample (value), 使得4 被抽到的概率是3被抽到的概率的11倍。

‘所以只要自己決定double weight 就完了?’. From 1point 3acres bbs
weight裡面的值都是隨便寫的,要自己處理一下,這樣保證不管weight的具體值是多少,相對的值是weight list裡的

  1. 給一個list [2,2,3,4,5,5,5,7] 自選資料結構,輸出每個元素以及repeat 次數。
  2. 給一個 log file,log file 裡面每一行可能長這樣

    akdsjflsj 127.0.0.1 asf alskdj alksfj;elifj
    kafsljlkjf; aklejf l;kaejlfkejflake 987.654.458.1
    flkasdjfl;a fklasdj flkaj l;fkdjas ;lkfj 123.123.123.123

    問所有 IP 出現的頻率,依照多到少排序