 WITH cte AS (
         SELECT scrape_data._id,
            scrape_data.is_operational,
            scrape_data.queue_time,
            scrape_data.queue_status_message,
            scrape_data.is_open,
            scrape_data.open_time,
            scrape_data.close_time,
            scrape_data.time_stamp,
            row_number() OVER (PARTITION BY scrape_data._id ORDER BY scrape_data.time_stamp DESC) AS row_number
           FROM knoebels."LZ_attractions_io" scrape_data
        )
 SELECT cte._id,
    poi.name,
    prices.price,
    cte.is_operational,
    cte.queue_time,
    cte.queue_status_message,
    cte.is_open,
    cte.open_time,
    cte.close_time,
    cte.time_stamp,
    rm.hand_stamp_included,
    rm.bargain_night_included,
    rm.capacity,
    rm.duration,
    poi.summary,
    poi.keywords,
    poi.default_image,
    poi.location,
    poi.featured,
    poi.wayfinding_enabled,
    poi.visible_on_map,
    poi.category,
    poi.minimum_height_requirement,
    poi.minimum_unaccompanied_height_requirement,
    poi.maximum_height_requirement,
    poi.minimum_age_requirement,
    poi.minimum_unaccompanied_age_requirement,
    poi.maximum_age_requirement,
    poi.restriction_summary
   FROM cte
     JOIN knoebels.ride_master rm ON cte._id = rm.attractions_dot_io_id
     JOIN knoebels."LZ_attractions_io_poi" poi ON cte._id = poi._id
     LEFT JOIN ( SELECT row_number() OVER (PARTITION BY ride_data_in.ride ORDER BY ride_data_in.time_stamp DESC) AS row_number,
            ride_data_in.time_stamp,
            ride_data_in.ride,
            ride_data_in.price
           FROM knoebels.ride_data_in) prices ON prices.ride = rm.ride AND prices.row_number = 1
  WHERE cte.row_number = 1;