CREATE OR REPLACE VIEW optimized_albums AS SELECT al.name AS name, al.release_year, to_char(al.total_plays, 'FM999,999,999,999') AS total_plays, al.total_plays AS total_plays_raw, ar.name_string AS artist_name, ar.slug AS artist_url, CONCAT('/', df_album.filename_disk) AS image, json_build_object( 'title', al.name, 'image', CONCAT('/', df_album.filename_disk), 'url', ar.slug, 'alt', CONCAT('Cover for ', al.name, ' by ', ar.name_string), 'subtext', CONCAT(to_char(al.total_plays, 'FM999,999,999,999'), ' plays') ) AS grid, json_build_object( 'title', al.name, 'artist', ar.name_string, 'plays', to_char(al.total_plays, 'FM999,999,999,999'), 'image', CONCAT('/', df_album.filename_disk), 'url', ar.slug, 'year', al.release_year, 'alt', CONCAT('Cover for ', al.name, ' by ', ar.name_string) ) AS table FROM albums al LEFT JOIN artists ar ON al.artist = ar.id LEFT JOIN directus_files df_album ON al.art = df_album.id GROUP BY al.id, ar.name_string, ar.slug, df_album.filename_disk;