# homework ## A: ### a. 這題想不太到要怎麼自動化的得到所有不同的顏色,因為還有AIR-BLUE這種顏色也沒辦法用-來分割,又有closet這種不是顏色的,因此我先自己建了一個table記錄所有的顏色 ```sql= CREATE TABLE colorlist (color varchar); INSERT INTO geometries VALUES ('AIR-BLUE'),('BLUE'),('BROWN'),('GREEN'),('GREY'), ('LIME'),('ORANGE'),('PURPLE'),('RED'),('SI-BLUE'),('YELLOW'); ``` 後續的code: ```sql= SELECT SUM(subtable.population), colorlist.color FROM (SELECT station.color as station_color, SUM(cen.popn_total) as population FROM nyc_subway_stations as station, nyc_census_blocks AS cen where ST_DWithin(station.geom, cen.geom, 200) GROUP BY station.color) as subtable, colorlist WHERE subtable.station_color LIKE CONCAT('%', colorlist.color, '%') GROUP BY colorlist.color; ``` 裡面的SELECT是各station經過的route以及population數量,印出來結果是: ![](https://i.imgur.com/QjYbWfn.png) 最後結果: ![](https://i.imgur.com/KfAyyAB.png) ### b. code: ```sql=  SELECT subset.name, subset.population/size as density, subset.size FROM ( SELECT neighbor.name, SUM(block.popn_total) as population ,ST_Area(neighbor.geom)/1000000 as size FROM nyc_neighborhoods as neighbor, nyc_census_blocks as block WHERE ST_DWITHIN( neighbor.geom,block.geom ,50 ) GROUP BY name,size LIMIT 10) as subset; ``` 參考lab handout使用neighbor 50公尺以內的 nyc_census_blocks total population來計算人數 裡面的table分別記錄name,sum of population, size 外面則再抓裡面的population和size算出density OUTPUT: ![](https://i.imgur.com/OZ2gss2.png) ### c. 原本的速度:9852.457 ms ![](https://i.imgur.com/YPQqBPm.png) 使用INDEX:新增nyc_census_blocks popn)total的POPN_TOTAL ```sql= CREATE Index IX_tbl_population ON nyc_census_blocks (POPN_TOTAL ASC); ``` 新的速度:9507.370 有所提升 ![](https://i.imgur.com/2937HKX.png) 建立geom的效果可能會更好 但空間需求太大無法建立 ## B: 第一個DATASET為芬蘭水災區域的分布,geom型態為MultiPolygon 第二個DATASET是芬蘭戲水區的點位,geom型態為point Data來源:https://www.syke.fi/en-US/Open_information/Spatial_datasets/Downloadable_spatial_dataset#C - [ ] 使用的query: 找出離發生過水災區域距離5以內的戲水區的名字以及point,可以用來劃分戲水區危險程度 QGIS上的圖: ```sql= SELECT uimavesini as name, ST_AsText(bath.geom) as point FROM euuimavesi as bath ,maartlvveskohde as flood WHERE ST_DWithin(bath.geom, flood.geom, 5) LIMIT 100; ``` output: 芬蘭文 有些字非英文字母沒辦法正常顯示 ![](https://i.imgur.com/nj8JPxk.png) QGIS: ![](https://i.imgur.com/ul8Jtaw.png) 危險點: ![](https://i.imgur.com/7qyvc8O.png) GOOGLE EARTH: ![](https://i.imgur.com/Y35tCYY.png)
{"metaMigratedAt":"2023-06-16T15:18:31.488Z","metaMigratedFrom":"Content","title":"homework","breaks":true,"contributors":"[{\"id\":\"537a9f98-0719-42a9-9e4e-f0c6c19122ea\",\"add\":2801,\"del\":445}]"}
    131 views