Tons of changes here, all in the name of quickly getting to where I can create test compliance letters.
40 lines
1,000 B
SQL
40 lines
1,000 B
SQL
-- This query is just a one-off to quickly get uploaded data turned into sites.
|
|
INSERT INTO site (
|
|
address_id,
|
|
created,
|
|
creator_id,
|
|
notes,
|
|
organization_id,
|
|
owner_name,
|
|
parcel_id,
|
|
tags,
|
|
version
|
|
)
|
|
SELECT DISTINCT ON (closest_address.id)
|
|
closest_address.id AS address_id,
|
|
fas.created,
|
|
fas.creator_id,
|
|
'' AS notes,
|
|
fas.organization_id,
|
|
'' AS owner_name,
|
|
containing_parcel.id AS parcel_id,
|
|
''::hstore AS tags,
|
|
1 AS version
|
|
FROM fileupload.flyover_aerial_service fas
|
|
CROSS JOIN LATERAL (
|
|
SELECT a.id
|
|
FROM address a
|
|
ORDER BY a.geom <-> fas.geom
|
|
LIMIT 1
|
|
) closest_address
|
|
CROSS JOIN LATERAL (
|
|
SELECT p.id
|
|
FROM parcel p
|
|
WHERE ST_Contains(p.geometry, fas.geom)
|
|
LIMIT 1
|
|
) containing_parcel
|
|
WHERE fas.geom IS NOT NULL
|
|
AND fas.deleted IS NULL
|
|
ORDER BY closest_address.id, fas.created ASC -- Keep the earliest created per address
|
|
ON CONFLICT (address_id) DO NOTHING; -- Skip if address already has a site
|
|
|