Sunday, August 30, 2015

用SQL指令來取代excel的vlookup

做GIS的時候,總是會有需要將兩張表(table)合併的時候,這種事,在excel是使用vlookup函數來達成。

另一方面,由於做GIS時,用到的kml檔,很容易讓excel當掉。所以本文就是教大家用SQL的指令,直接解決合併兩張表的問題。

我們用一個範例來探討吧:
給定的資料是一個sqlite的資料庫。這個資料庫taiwan_village_db,內含兩張表。一張表(taiwan_village)是全台灣的里的kml資料。第二張表(vote)則是柯文哲2014年在大安區的得票數。其中,第二張表(vote)是用中選會資料庫下載下來的CSV檔,匯入sqlite資料庫做成的。

我們想要達成的目標,就是做出資料輸出,它是一張表(table),內含第一張表與第二張表合併的結果。

(*)
下載的網址:
https://github.com/humorless/taiwan-village-KML/
在此處下載
taiwan_village_db 這個檔案。
可以點右邊的「Download ZIP」按鈕來下載。
( 下載下來的sqlite資料庫,可以使用sqlite browser這隻程式來開啟。同時,sqlite browser也可以用來下SQL指令。)

(*) 要合併兩張表,需要下的指令是:
select county||village, kml, name, number, percentage from taiwan_village, vote where county||village=area;

注意: 
(1) county, village, kml是屬於taiwan_village表的欄位。name, number, percentage則是屬於vote的欄位。
(2) county||village 的部分之中的||符號,是用來連接兩個欄位。

No comments:

Post a Comment