CREATE OR REPLACE VIEW month_albums AS SELECT ol.album_name, ol.artist_name, COUNT(*) AS plays, ol.album_art, ol.artist_url, json_build_object('title', ol.album_name, 'image', ol.album_art, 'url', ol.artist_url, 'alt', CONCAT(ol.album_name, ' by ', ol.artist_name), 'subtext', ol.artist_name) AS grid FROM optimized_listens ol WHERE TO_TIMESTAMP(ol.listened_at) >= NOW() - INTERVAL '30 days' GROUP BY ol.album_name, ol.artist_name, ol.album_art, ol.artist_url ORDER BY plays DESC;