CREATE OR REPLACE VIEW optimized_scheduled_episodes AS
SELECT
  se.show_id,
  se.season_number,
  se.episode_number,
  se.status,
  se.air_date,
  (
    SELECT CONCAT('S', se2.season_number, 'E', se2.episode_number)
    FROM scheduled_episodes se2
    WHERE se2.show_id = se.show_id
      AND se2.status IN ('upcoming', 'aired')
    ORDER BY se2.air_date ASC
    LIMIT 1
  ) AS next_scheduled_episode,
  (
    SELECT se2.air_date
    FROM scheduled_episodes se2
    WHERE se2.show_id = se.show_id
      AND se2.status IN ('upcoming', 'aired')
    ORDER BY se2.air_date ASC
    LIMIT 1
  ) AS next_air_date
FROM scheduled_episodes se
WHERE se.status IN ('upcoming', 'aired')
GROUP BY se.show_id, se.season_number, se.episode_number, se.status, se.air_date;