學生地理資訊報告

2021-10-25 10:32:12 字數 1941 閱讀 9278

一所美國大學有來自亞洲、歐洲和美洲的學生,他們的地理資訊存放在如下 student 表中。

| name | continent |

|--------|-----------|

| jack | america |

| pascal | europe |

| xi | asia |

| jane | america |

寫乙個查詢語句實現對大洲(continent)列的 透視表 操作,使得每個學生按照姓名的字母順序依次排列在對應的大洲下面。輸出的標題應依次為美洲(america)、亞洲(asia)和歐洲(europe)。資料保證來自美洲的學生不少於來自亞洲或者歐洲的學生。

對於樣例輸入,它的對應輸出是:

| america | asia | europe |

|---------|------|--------|

| jack | xi | pascal |

| jane | | |

#建表

drop table if exists student;create table student

(name varchar(20),

continent varchar(20)

);insert into student values('jack', 'america');

insert into student values('pascal', 'europe');

insert into student values('xi', 'asia');

insert into student values('jane', 'america');

#答案

select america, asia, europe

from

(select name as america,row_number() over (order by name asc) as rn from student where continent='america') a

left join

(select name as asia,row_number() over (order by name asc) as rn from student where continent='asia') b

on a.rn=b.rn

left join

(select name as europe,row_number() over (order by name asc) as rn from student where continent='europe') c

on c.rn=a.rn

#展示

#本人錯誤**

select

(case when s.continent='america' then s.name else null end) 'america',

(case when s.continent='asia' then s.name else null end) 'asia',

(case when s.continent='europe' then s.name else null end) 'europe'

from student s;

#展示

本題一看,很簡單,建表也很簡單 但是細細一品真的不容易。

雖然知道使用開窗函式 但是沒想到連線 導致這個空值沒辦法去掉

sql語句還是掌握不夠紮實。

獲取ip地理資訊

第一種是利用純真ip資料庫,這個可以在網上找到很多,缺點是更新有點慢。第二種是利用門戶 的介面 網易有道的ip位址查詢介面 檢視源 列印幫 function getipplace ip getipplace print r ip 呼叫查詢介面需要抓取網頁,有三種方法,第一種是curl,第二種是 fi...

地理資訊雲服務

有大佬雄心勃勃,準備打造乙個地理資訊平台,作為基礎服務,支撐各種應用。其中一項指標,是要能經得起一定量的併發訪問。這是自然,基礎服務嘛。高併發的套路,如前所學,無非就是非同步機制 負載均衡 快取 分布式資料庫之類。地圖服務沒有什麼來自於使用者的資料寫入,主要是讀取,非同步機制估計用不上 但訊息佇列還...

ios 地理資訊反編碼

clgeocoder geocoder clgeocoder alloc init geocoder reversegeocodelocation manager.location completionhandler nsarray placemarks,nserror error if place...