一所美國大學有來自亞洲、歐洲和美洲的學生,他們的地理資訊存放在如下 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...