chore(*.sql): use sql-formatter for sql formatting
This commit is contained in:
parent
753f3433ce
commit
a650f1d3e8
63 changed files with 4432 additions and 2358 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue