chore(*.sql): use sql-formatter for sql formatting

This commit is contained in:
Cory Dransfeldt 2025-06-14 17:10:41 -07:00
parent 753f3433ce
commit a650f1d3e8
No known key found for this signature in database
63 changed files with 4432 additions and 2358 deletions

View file

@ -6,16 +6,23 @@ SELECT
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
'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,
json_build_object(
'open_graph_image',
CASE
WHEN ol.opengraph_image_album IS NOT NULL AND ol.opengraph_image_album != '' AND ol.opengraph_image_album != '/' THEN ol.opengraph_image_album
WHEN ol.opengraph_image_album IS NOT NULL
AND ol.opengraph_image_album != ''
AND ol.opengraph_image_album != '/' THEN ol.opengraph_image_album
ELSE NULL
END
) AS metadata

View file

@ -6,16 +6,23 @@ SELECT
ol.artist_url,
ARRAY_AGG(DISTINCT ol.genre_name) AS genres,
json_build_object(
'title', ol.artist_name,
'image', ol.artist_art,
'url', ol.artist_url,
'alt', CONCAT(COUNT(*), ' plays of ', ol.artist_name),
'subtext', CONCAT(COUNT(*), ' plays')
'title',
ol.artist_name,
'image',
ol.artist_art,
'url',
ol.artist_url,
'alt',
CONCAT(COUNT(*), ' plays of ', ol.artist_name),
'subtext',
CONCAT(COUNT(*), ' plays')
) AS grid,
json_build_object(
'open_graph_image',
CASE
WHEN ol.opengraph_image_artist IS NOT NULL AND ol.opengraph_image_artist != '' AND ol.opengraph_image_artist != '/' THEN ol.opengraph_image_artist
WHEN ol.opengraph_image_artist IS NOT NULL
AND ol.opengraph_image_artist != ''
AND ol.opengraph_image_artist != '/' THEN ol.opengraph_image_artist
ELSE NULL
END
) AS metadata

View file

@ -3,7 +3,12 @@ SELECT
ol.genre_name,
ol.genre_url,
COUNT(*) AS plays,
json_build_object('alt', ol.genre_name, 'subtext', CONCAT(COUNT(*), ' plays')) AS grid
json_build_object(
'alt',
ol.genre_name,
'subtext',
CONCAT(COUNT(*), ' plays')
) AS grid
FROM
optimized_listens ol
WHERE
@ -13,4 +18,3 @@ GROUP BY
ol.genre_url
ORDER BY
plays DESC;

View file

@ -1,34 +1,111 @@
CREATE OR REPLACE VIEW optimized_week_music AS
SELECT json_build_object(
'week_artists', (
SELECT json_agg(a ORDER BY a.plays DESC)
FROM (
SELECT * FROM week_artists ORDER BY plays DESC LIMIT 8
) a
),
'week_albums', (
SELECT json_agg(al ORDER BY al.plays DESC)
FROM (
SELECT * FROM week_albums ORDER BY plays DESC LIMIT 8
) al
),
'week_genres', (
SELECT json_agg(g ORDER BY g.plays DESC)
FROM (
SELECT * FROM week_genres ORDER BY plays DESC LIMIT 5
) g
),
'recent_tracks', (
SELECT json_agg(r ORDER BY r.listened_at DESC)
FROM (
SELECT * FROM recent_tracks ORDER BY listened_at DESC LIMIT 10
) r
),
'week_summary', (
SELECT json_build_object(
'total_tracks', (SELECT COUNT(*) FROM week_tracks),
'total_artists', (SELECT COUNT(*) FROM week_artists),
'total_albums', (SELECT COUNT(*) FROM week_albums)
SELECT
json_build_object(
'week_artists',
(
SELECT
json_agg(
a
ORDER BY
a.plays DESC
)
FROM
(
SELECT
*
FROM
week_artists
ORDER BY
plays DESC
LIMIT
8
) a
),
'week_albums',
(
SELECT
json_agg(
al
ORDER BY
al.plays DESC
)
FROM
(
SELECT
*
FROM
week_albums
ORDER BY
plays DESC
LIMIT
8
) al
),
'week_genres',
(
SELECT
json_agg(
g
ORDER BY
g.plays DESC
)
FROM
(
SELECT
*
FROM
week_genres
ORDER BY
plays DESC
LIMIT
5
) g
),
'recent_tracks',
(
SELECT
json_agg(
r
ORDER BY
r.listened_at DESC
)
FROM
(
SELECT
*
FROM
recent_tracks
ORDER BY
listened_at DESC
LIMIT
10
) r
),
'week_summary',
(
SELECT
json_build_object(
'total_tracks',
(
SELECT
COUNT(*)
FROM
week_tracks
),
'total_artists',
(
SELECT
COUNT(*)
FROM
week_artists
),
'total_albums',
(
SELECT
COUNT(*)
FROM
week_albums
)
)
)
)
) AS week_music;
) AS week_music;

View file

@ -1,26 +1,31 @@
CREATE OR REPLACE VIEW week_tracks AS
WITH track_stats AS (
SELECT
ol.track_name,
ol.artist_name,
ol.album_name,
COUNT(*) AS plays,
MAX(ol.listened_at) AS last_listened,
ol.album_art,
ol.artist_url,
MAX(COUNT(*)) OVER () AS most_played,
RANK() OVER (ORDER BY COUNT(*) DESC, MAX(ol.listened_at) DESC) AS rank
FROM
optimized_listens ol
WHERE
TO_TIMESTAMP(ol.listened_at) >= NOW() - INTERVAL '7 days'
GROUP BY
ol.track_name,
ol.artist_name,
ol.album_name,
ol.album_art,
ol.artist_url
)
WITH
track_stats AS (
SELECT
ol.track_name,
ol.artist_name,
ol.album_name,
COUNT(*) AS plays,
MAX(ol.listened_at) AS last_listened,
ol.album_art,
ol.artist_url,
MAX(COUNT(*)) OVER () AS most_played,
RANK() OVER (
ORDER BY
COUNT(*) DESC,
MAX(ol.listened_at) DESC
) AS rank
FROM
optimized_listens ol
WHERE
TO_TIMESTAMP(ol.listened_at) >= NOW() - INTERVAL '7 days'
GROUP BY
ol.track_name,
ol.artist_name,
ol.album_name,
ol.album_art,
ol.artist_url
)
SELECT
track_name,
artist_name,
@ -30,14 +35,22 @@ SELECT
album_art,
artist_url,
json_build_object(
'title', track_name,
'artist', artist_name,
'url', artist_url,
'plays', plays,
'alt', CONCAT(track_name, ' by ', artist_name),
'subtext', CONCAT(album_name, ' (', plays, ' plays)'),
'percentage', ROUND((plays::decimal / most_played) * 100, 2),
'rank', rank
'title',
track_name,
'artist',
artist_name,
'url',
artist_url,
'plays',
plays,
'alt',
CONCAT(track_name, ' by ', artist_name),
'subtext',
CONCAT(album_name, ' (', plays, ' plays)'),
'percentage',
ROUND((plays::decimal / most_played) * 100, 2),
'rank',
rank
) AS chart
FROM
track_stats