Forum QGIS
zapytanie - struktura wiekowa - Wersja do druku

+- Forum QGIS (http://forum.quantum-gis.pl)
+-- Dział: Desktop GIS (http://forum.quantum-gis.pl/forum-4.html)
+--- Dział: QGIS (http://forum.quantum-gis.pl/forum-5.html)
+--- Wątek: zapytanie - struktura wiekowa (/thread-1709.html)



zapytanie - struktura wiekowa - Roland_z_Gilead - 06-09-2018

Witam,
proszę o pomoc w sformułowaniu zapytania sql. Otóż mam bazę mieszkańców miasta z datą urodzenia i adresem. Chciałbym wyłuskać tylko mieszkańców 60+, którzy mieszkają sami w budynku. Próbowałem tworzyć zapytanie po wieku i grupowanie po adresie - ale ktoś młodszy też może tam mieszkać. Chcę wykluczyć rodziny wielopokoleniowe pod danym adresem. Nie mam na razie pomysłu jak to zrobić. Pewnie na "piechotę" się da, ale to czasochłonne. Może jakieś zapytanie wykluczające lokalizację 60+ przy jednoczesnym występowaniu 60- .
Jak macie pomysł to chętnie sprawdzę.


RE: zapytanie - struktura wiekowa - Roland_z_Gilead - 06-09-2018

Dane są oczywiście z geometrią, baza spatialite.


RE: zapytanie - struktura wiekowa - Roland_z_Gilead - 07-09-2018

Zrobiłem zadanie na "piechotę", czyli dwie warstwy w qgis - w uproszczeniu 60plus i 60minus. Zaznaczenie poprzez lokalizację z wykluczaniem się i jest to co chciałem. Co ciekawe warstwy musiałem zapisać w shp, bo inaczej jako baza spatialite w qgis zaznaczenie liczyło się bez efektu. Pozdrawiam


RE: zapytanie - struktura wiekowa - xmaziax - 07-09-2018

Najpierw z warstwy wybierasz tylko te budynki/adresy gdzie mieszka jedna osoba.
select adres_id from tabela group by adres_id having count(*)=1 - grupowanie po adresie i zawężenie do wyników gdzie suma wynosi 1.

Później składasz zapytanie:
select * from tabela where wiek >60 and adres_id in (select adres_id from tabela group by adres_id having count(*)=1);
pierwszy warunek zawęża osoby po wieku, a drugi zawęża adresy do tych gdzie żyje 1 osoba - czyli ta > 60
Nie dam głowy, że to na spatialite - raczej nie używam tej bazy, a nie chce mi się sprawdzać Wink