CREATE OR REPLACE VIEW month_genres AS SELECT ol.genre_name, ol.genre_url, COUNT(*) AS plays, json_build_object('alt', ol.genre_name, 'subtext', CONCAT(COUNT(*), ' plays')) AS grid FROM optimized_listens ol WHERE TO_TIMESTAMP(ol.listened_at) >= NOW() - INTERVAL '30 days' GROUP BY ol.genre_name, ol.genre_url ORDER BY plays DESC;