Nye-TeeOff/migrations/2026-05-06_repair_physical_hole_count_from_amenities.sql

19 lines
605 B
MySQL
Raw Normal View History

2026-05-10 08:04:51 +02:00
WITH parsed_hole_counts AS (
SELECT
c.id AS course_id,
NULLIF(SUBSTRING(COALESCE(f.amenities->>'antall_hull', '') FROM '([0-9]+)'), '')::INTEGER AS parsed_hole_count
FROM courses c
JOIN facilities f ON f.id = c.facility_id
WHERE c.is_main_course = TRUE
AND COALESCE(f.amenities->>'antall_hull', '') <> ''
)
UPDATE courses c
SET physical_hole_count = p.parsed_hole_count
FROM parsed_hole_counts p
WHERE c.id = p.course_id
AND p.parsed_hole_count IS NOT NULL
AND (
c.physical_hole_count IS NULL
OR c.physical_hole_count > (p.parsed_hole_count * 2)
);