Met dank aan PeeWee32 zijn opmerkzaamheid en tips heb ik nog een storende fout uit mijn code (en mijn aannames) gehaald.
Er blijven dan nog steeds heel wat dubbele of driedubbele adressen over, maar bij de enkele tientallen die ik heb gecheckt kwam dat precies zo voor in de BAG viewer.
Nu wil ik geen data weghalen uit de database om dat te verhelpen, maar met twee VIEWs op de bron tabel is het gelukkig snel op te lossen door bij meerdere entries voor hetzelfde adres de gegevens van die met de meest recente begindatum geldigheid te nemen. Daar zit natuurlijk een aanname in, maar als het doel is geen dubbelingen te hebben dan leek me dat best een aardige aanname
.
Voor de technisch geïnteresseerden:
CREATE OR REPLACE VIEW '_num' AS
SELECT _num_raw.*, coalesce(postcode,opr_id) as deduplicator
FROM '_num_raw' LEFT JOIN 'cutoff' ON (1=1)
WHERE ((begindatum_geldigheid <= cutoff)
AND ((einddatum_geldigheid IS NULL) OR (einddatum_geldigheid > cutoff)))
AND tijdstip_inactief IS NULL
AND status = 'Naamgeving uitgegeven'
ORDER BY begindatum_geldigheid DESC;
CREATE OR REPLACE VIEW num AS
SELECT
first(id) AS id,
first(status) AS status,
first(geconstateerd) AS geconstateerd,
first(begindatum_geldigheid) AS begindatum_geldigheid,
first(einddatum_geldigheid) AS einddatum_geldigheid,
first(tijdstip_inactief) AS tijdstip_inactief,
first(object_type) AS object_type,
first(postcode) as postcode,
huisnummer,huisletter,toevoeging,
first(wpl_id) AS wpl_id,
first(opr_id) as opr_id,
deduplicator,
FROM _num GROUP BY ALL;
Verder heb ik ook nog bepaling van het woningtype toegevoegd, zoveel mogelijk het proces volgend zoals beschreven in bijlage 1 van de productbeschrijving Woningtypering van het Kadaster. Dat lijkt al verdraaid goed te werken afgaand op mijn eigen woonwijk, al zie ik nog een paar dingen (in rood hieronder) waar ik nog een keer dieper in wil duiken.
De nachtelijke exports hebben nu dus ook een veld woningtype, met dezelfde letters als gebruikt in de woningtypering: (A)ppartement, (T)ussenwoning, (H)oekwoning 2onder1(K)ap, (V)rijstaand of N voor geen woning. De rode gebouwen boven hebben geen waarde (NULL), wat betekent dat er geen woningtype kon worden vastgesteld.
Groetjes,
Remco