Paikkatiedon hallinta ja analyysi 3. Paikkatietomallit ja kyselyt



Samankaltaiset tiedostot
Paikkatiedon käsittely 2. Relaatiomallin paikkatietolaajennokset

INSERT INTO koulutus VALUES ( Helsinki, 22.6, 4);

Paikkatiedon käsittely 3. Kyselyt paikkatietokannasta

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

Relaatioalgebra. Kyselyt:

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

Paikkatiedon käsittely 12. Yhteenveto

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

SQL - STRUCTURED QUERY LANGUAGE

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra Harri Laine 1. Relaatioalgebra

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Paikkatiedon hallinta ja analyysi

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki Relaatiomalli

joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus

Paikkatiedon käsittely

SELECT-lauseen perusmuoto

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki

CSE-A1200 Tietokannat

Helsingin yliopisto/ tktl D Tietokantojen perusteet, s 2000 Relaatioalgebra. Harri Laine 1. Relaatioalgebra.

HELIA 1 (14) Outi Virkki Tiedonhallinta

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

CSE-A1200 Tietokannat

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto.

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

TIETOKANNAT JOHDANTO

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

Relaation tyhjyyden testaaminen

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

Kyselyn yleisrakenne:

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Liitokset - haut useaan tauluun

Paikkatiedon käsittely 6. Kyselyn käsittely

CSE-A1200 Tietokannat

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi

SQL-kielen perusteet. Tietokantojen perusteet

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli

HELIA 1 (14) Outi Virkki Tiedonhallinta

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

HELIA TIKO-05 1 (15) ICT03D Tieto ja tiedon varastointi Räty, Virkki

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

2. Käsiteanalyysi ja relaatiomalli

Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Mikä on tietomalli? Relaatiomallin käsitteitä 1/2 (kuva 5.1) Relaatiomallin taustaa

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

Tietokannat II -kurssin harjoitustyö

HELIA 1 (11) Outi Virkki Tiedonhallinta

4.1 Yleistä SQL:stä 4.2 SQL-lauseet 4.3 DML: datan hallinta 4.4 DDL: rakenteen määrittäminen 4.5 DCL: valtuuttaminen 4.6 TxCL: tapahtumanhallinta

Esimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokantojen perusteet

Yhdiste, leikkaus, erotus ym.

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

Relaatiomalli ja -tietokanta

SQL:N PERUSTEET MARKKU SUNI

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI

Tietokannat II -kurssin harjoitustyö

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

Tietokantakurssit / TKTL

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

HELIA TIKO-05 1 (28) ICT03D Tieto ja tiedon varastointi O.Virkki

Helsingin seudun keskeiset tunnusluvut / Helsingin kaupungin tietokeskus

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

Transkriptio:

HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon hallinta ja analyysi 3. Paikkatietomallit ja kyselyt Antti Leino <antti.leino@cs.helsinki.fi> 21. maaliskuuta 2005 Tietojenkäsittelytieteen laitos

Sisältö Esimerkkitietokanta Paikkatietotyypit Relaatiomallin paikkatietolaajennokset Oliomallit Rigaux Scholl Voisard 2002: Spatial Databases, luku 3 Shekhar Chawla 2003: Spatial Databases: A Tour, luku 3

Relaatiotietokanta Perusajatus: tieto esitetään relaatioina Helpointa ajatella taulukkona normaalisti puhutaankin taulusta (table) Sarakkeiden arvojoukot D 1,...,D n Relaatio: osajoukko ristitulosta D 1 D n Joukko monikkoja (tuple) (d 1,..., d n ) Kyselyt esitettävissä formaalisti relaatioalgebran avulla

Esimerkkitietokanta Kurssia varten on olemassa PostgreSQL-tietokanta, jossa PostGIS-laajennos Paikkatiedon käsittely Open GIS -määritysten mukaan Käyttö palvelimella db.cs.helsinki.: /usr/local/pgsql-7.4/bin/psql -p 12155 -U kurssi kunnat01 Password: Welcome to psql 7.4.7, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit kunnat01=>

Kuntataulu Taulu kunnat01: Suomen kunnat v. 2001 wkb_geometry sijaintitieto kuntakoodi numeerinen kuntakoodi nimi kunnan nimi laani lääni, johon kunta kuuluu maakunta maakunta, johon kunta kuuluu miehet kunnassa asuvien miesten lukumäärä naiset kunnassa asuvien naisten lukumäärä yht kunnan väkiluku ulkom_miehet kunnassa asuvat ulkomaalaiset miehet ulkom_naiset kunnassa asuvat ulkomaalaiset naiset ulkom_yht kunnassa asuvat ulkomaalaiset (so. muut kuin Suomen kansalaiset) muutos00 väkiluvun muutos vuodesta 2000

Lisää tauluja Taulu autoilu ajokm Ajokilometrit yleisillä teillä v. 1996 autoja Henkilöautoja v. 1997 tiet Yleisiä teitä v. 1996 (km) Taulu elintaso tulot_hlo Keskitulot / henkilö 1996 (mk) tulot_talous Keskitulot / talous 1996 (mk) asunnot Asuntojen keskikoko 1998 (m 2 ) asuintila Asuintilaa / henkilö 1998 (m 2 ) sosiaali Sosiaali- ja terveystoimen kustannukset (mk/asukas) Taulu koulutus tutkinnot Korkeakoulututkinnon suorittaneita 20 vuotta täyttäneistä 1998 (%) opiskelijat Opiskelijatalouksia (%)

Vielä pari lisää Taulu vakiluku v70 vuonna 1970 v99 vuonna 1999 v10 ennuste 2010 (1998) Taulu vaalit96: vuoden 1996 kunnallisvaalit, % valtuustopaikoista keskusta Keskusta kokoomus Kokoomus sdp Sosiaalidemokraatit sfp Ruotsalainen kansanpuolue vasemmistoliitto Vasemmistoliitto vihreat Vihreät

Relaatioalgebra Formaali tapa esittää operaatiot relaatioiden käsittelyyn Ei sellaisenaan käytössä tietokannoissa Kyselykielet, mm. SQL, lähellä Hyödyllinen teoriatausta tietokannan tietokannanhallintajärjestelmän suunnittelussa Minimissään viisi perusoperaatiota, lisää voidaan johtaa

Relaatioalgebran operaatiot Normaaleja joukko-opin operaatioita Yhdiste: R S = {t (t R) (t S)} Erotus: R S = {t (t R) (t S)} Ristitulo: R S = {t u (t R) (u S)} Relaatioalgebran omia Projektio: π A1,...,A n (R) = {(a 1,..., a n ) t R i {1,..., n} : a i = t.a i } Valinta: σ ehto (R) = {t (t R) (ehto on voimassa)} Lisäksi muita, yleensä ainakin Leikkaus: R S = R (R S) = S (S R) Liitos: R ehto S = σ ehto (R S)

Liitosoperaatiot Yleinen liitos: yhdistetään toisiinsa ne monikot, jotka täyttävät liitosehdon Ulkoliitos: Tulosrelaatiossa mukana sellaiset monikot, joille ei löydy paria toisesta lähtörelaatiosta Tällaiset mukaan joko vain toisesta tai molemmista lähtörelaatioista Luonnollinen liitos: yhdistetään toisiinsa ne monikot, joissa yhteiset (so. samannimiset) sarakkeet ovat samat

SQL Kieli relaatiotietokantojen käsittelyyn: tietokannan tietosisällön määrittelyyn tietojen päivitykseen tietojen hakuun käyttäjien ja käyttöoikeuksien määrittelyyn Tuoreimmat standardin verisiot SQL-92 SQL:1999 SQL:2003 Tällä kurssilla käytössä PostgreSQL 7.4, jossa toteutettuna valtaosa standardi-sql:stä 1 1 Tällä hetkellä ei ole saatavilla tkhj:tä, joka toteuttaisi kaikki SQL:2003-määritysten pakolliset osat

Taulun luominen Esimerkiksi kurssiaineistona oleva koulutus-taulu: CREATE TABLE koulutus ( kunta VARCHAR(25) NOT NULL, tutkinnot NUMERIC(4,2), opiskelijat NUMERIC(1), PRIMARY KEY (kunta) ); Avaimena kunnan nimi Numeerisia tietoja korkeakoulututkinnon suorittaneiden ja opiskelijoiden osuudet väestöstä

Taulussa olevan tiedon muuttaminen Tietojen lisääminen INSERT INTO koulutus VALUES ( Helsinki, 22.6, 4); Tietojen muuttaminen UPDATE koulutus SET opiskelijat = 4 WHERE kunta = Helsinki ; Tietojen poistaminen DELETE FROM koulutus WHERE kunta = Helsinki ;

Tietokantahaku Perushaku: kunnat, joissa korkeakoulu yli 20% aikuisväestöstä SELECT kunta, tutkinnot FROM koulutus WHERE tutkinnot > 20 ORDER BY tutkinnot DESC; Tulos: kunta tutkinnot Kauniainen 44.40 Espoo 28.60 Helsinki 22.60 Oulu 20.89 Kirkkonummi 20.39 (5 rows)

Hakuehtojen yhdistäminen Hakuehdossa voi toki käyttää myös loogisia operaattoreita AND, OR, NOT Kunnat, joissa paljon sekä tutkinnon suorittaneita että opiskelijoita SELECT * FROM koulutus Tulos: WHERE tutkinnot > 17.5 AND opiskelijat > 4; kunta tutkinnot opiskelijat Jyväskylä 19.80 7 Oulu 20.89 5 Tampere 17.70 5 (3 rows)

Kysely useasta taulusta Valtuustojen voimasuhteet korkeasti koulutetuissa kunnissa SELECT vaalit96.* FROM koulutus, vaalit96 WHERE vaalit96.kunta = koulutus.kunta AND koulutus.tutkinnot > 20; Tulos: kunta keskusta kokoomus sdp sfp vasemmistoliitto vihreat Espoo 2.94 35.29 20.58 11.76 4.41 11.76 Helsinki 3.48 27.90 24.41 9.30 6.97 18.60 Kauniainen 0.00 30.55 2.77 50.00 0.00 5.55 Kirkkonummi 4.54 27.27 25.00 22.72 4.54 9.09 Oulu 21.66 20.00 20.00 0.00 16.66 11.66 (5 rows)

Yhteenvetokyselyt Kyselytuloksessa voi käyttää operaattoreita MIN, MAX, AVG, COUNT ja SUM Yhteenlaskettu väkiluku kunnissa, joissa on korkein tulotaso SELECT SUM(kunnat01.yht) FROM kunnat01, elintaso WHERE kunnat01.nimi = elintaso.kunta AND elintaso.tulot_hlo > 80000; Tulos: sum 1103128 (1 row)

Luokittelu Kyselytuloksen voi luokitella Läänien väkiluku SELECT laani, sum(yht), sum(ulkom_yht) FROM kunnat01 GROUP BY laani ORDER BY laani; Tulos: laani sum sum 1 2081507 55248 2 1835836 24404 3 591093 5140 4 455135 3442 5 191768 1715 6 25776 1125 (6 rows)

Alikyselyt Hakuehdossa voi käyttää mukana alikyselyn tuloksia Ahvenanmaan keskimääräistä suuremmat kunnat SELECT nimi, yht FROM kunnat01 WHERE laani = 6 AND yht > (SELECT AVG(yht) FROM kunnat01 WHERE laani = 6) ORDER BY yht DESC; nimi yht Maarianhamina 10488 Jomala 3328 Finström 2299 Saltvik 1679 (4 rows)

SQL ja paikkatieto Perus-SQL, samoin kuin relaatioalgebra, lähtee yksinkertaisista tietotyypeistä Numeroita, merkkijonoja, aikoja Geometriatieto monimutkaisempaa Oliorelaatiotietokanta Uusien tietotyyppien ja niiden operaatioiden määrittely Tietotyyppien luokkahierarkia: aliluokat, moniperintä Paikkatietotyypit lisättävissä

Open GIS Ohjelmistovalmistajien yhteenliittymä Tavoitteena paikkatietojärjestelmien yhteensovittamiseen tarvittava standardointi Taustalla oliopohjainen tietomalli Tietomalli sovellettavissa eri ohjelmointikielillä; tässä SQL-määritykset Geometriatieto jakaantuu neljään alaluokkaan: 02-ulotteisiin yksittäisiin kohteisiin ja niiden kokoelmiin

Open Gis:n luokkahierarkia

Perusoperaatiot Paikkatietotyypeille on määritelty mm. Dimension(): kohteen ulottuvuus SRID(): Käytetyn koordinaattijärjestelmän tunniste IsEmpty(): Onko kohteen esitys tyhjä IsSimple(): Onko kohde yksinkertainen Boundary(): Kohteen reuna Envelope(): Pienin koordinaattiakselien suuntainen suorakulmio, jonka sisään kohde sopii

Topologiset suhteet Kohteiden välisistä topologisista suhteista on määritelty Equals(): A = B Disjoint(): A B = Touches(): ( A B ) (A B = ) Within(): A B Overlaps(): (A B ) Crosses(): (A l ) ( Within(l, A)) (Dim(A l) < max(dim(a),dim(l))) Intersects(): Disjoint(A, B) Contains(): Within(B, A)

Paikkaoperaatiot Sijaintisuhde Distance(): lyhin kohteiden välinen etäisyys Topologiset ym. operaatiot Intersection(): A B Difference(): A B Union(): A B SymDifference(): (A B) (A B) Buffer(): Alue d pituusyksikön sisällä A:n ympärillä ConvexHull(): A:n konveksi verho, so. pienin kupera monikulmio, jonka sisään A sopii

Piste- ja viivakohteiden funktiot Pistekohteille määritellyt funktiot X(): pisteen x-koordinaatti Y(): pisteen y-koordinaatti Viivakohteille määritellyt funktiot StartPoint(): alkupisteen koordinaatit EndPoint(): loppupisteen koordinaatit IsClosed(): StartPoint(l) = EndPoint(l) IsRing(): IsClosed(l) IsSimple(l) Length(): Murtoviivan pituus NumPoints(): Murtoviivan kulmapisteiden lukumäärä PointN(): n:nnen kulmapisteen koordinaatit

Aluekohteiden funktioita Aluekohteiden funktioita Centroid(): keskipiste (ei välttämättä kohteen sisällä!) PointOnSurface(): palauttaa kohteen sisäpisteen Area(): alueen pinta-ala Kokoelmakohteiden funktioita NumGeometries(): kokoelman kohteiden lukumäärä GeometryN(): kokoelman n:s osakohde

Paikkatietoa käyttävä haku Helsingin lähikunnat SELECT b.nimi, distance(a.wkb_geometry, b.wkb_geometry) FROM kunnat01 AS a, kunnat01 AS b WHERE a.nimi = Helsinki AND DISTANCE(a.wkb_geometry, b.wkb_geometry) < 12000 ORDER BY DISTANCE(a.wkb_geometry, b.wkb_geometry); nimi distance Espoo 0 Helsinki 0 Vantaa 0 Sipoo 0 Kauniainen 3001.95627904734 Tuusula 8138.60263039062 Kerava 10298.093525215 Nurmijärvi 11714.9316057791 (8 rows)

Kohteiden välinen raja Vierekkäisten alueiden leikkaus on niiden raja Helsingin ja sen naapurikuntien välisen rajan pituus SELECT b.nimi, LENGTH(INTERSECTION(a.wkb_geometry, b.wkb_geometry)) FROM kunnat01 AS a, kunnat01 AS b WHERE a.nimi= Helsinki AND TOUCHES(a.wkb_geometry, b.wkb_geometry); nimi length Espoo 10501.3961662369 Vantaa 19034.0488094046 Sipoo 2544.35931429806 (3 rows)

Sijainti- ja ominaisuustiedon yhdistäminen Helsinkiä lähin keskustaenemmistöinen kunta SELECT b.nimi, DISTANCE(a.wkb_geometry, b.wkb_geometry), vaalit96.keskusta FROM kunnat01 AS a, kunnat01 AS b, vaalit96 WHERE a.nimi = Helsinki AND b.nimi = vaalit96.kunta AND vaalit96.keskusta > 50 AND distance(a.wkb_geometry, b.wkb_geometry) = (SELECT MIN(DISTANCE(a.wkb_geometry, b.wkb_geometry)) FROM kunnat01 as a, kunnat01 as b, vaalit96 WHERE a.nimi= Helsinki AND b.nimi = vaalit96.kunta AND vaalit96.keskusta > 50); nimi distance keskusta Artjärvi 66399.075294766 55.55 (1 row)

Laskentaa ominaisuus- ja sijaintitiedoilla Kunnat, joissa eniten julkisia teitä (tie-m / km 2 ) SELECT kunnat01.nimi, autoilu.tiet/area(kunnat01.wkb_geometry)*1e9 AS tietiheys, tiet, area(kunnat01.wkb_geometry)/1e6 as km2 FROM kunnat01, autoilu WHERE kunnat01.nimi = autoilu.kunta AND autoilu.tiet/area(kunnat01.wkb_geometry) > 8e-7 ORDER BY autoilu.tiet/area(kunnat01.wkb_geometry) DESC; nimi tietiheys tiet km2 Piikkiö 929.445534809963 73 78.54145 Vantaa 903.257125077235 222 245.777192160004 Lemu 880.881351154542 30 34.0568 Merimasku 870.754860737831 26 29.85915 Mietoinen 844.530290806328 66 78.14995 (5 rows)

Hyvää pääsiäistä http://www.banaanikotka./