Add check if there is a tie in scrobble count
This commit is contained in:
parent
5739f89e0d
commit
9fa90ff129
2 changed files with 15 additions and 8 deletions
|
|
@ -17,7 +17,11 @@
|
|||
|
||||
<div style="display:flex;flex-direction:row;justify-content:space-evenly">
|
||||
<div style="display:flex;flex-direction:column;align-self:left">
|
||||
@if ($.song.is_tie)
|
||||
<div>{{.song.scrobbles}} scrobbles ({{.song.rank}} place, tied)</div>
|
||||
@else
|
||||
<div>{{.song.scrobbles}} scrobbles ({{.song.rank}} place)</div>
|
||||
@end
|
||||
@partial partials/firstlast_listens(firstlast: .firstlast)
|
||||
<h3>Yearly Performance</h3>
|
||||
@partial partials/timescale(range: .yearly)
|
||||
|
|
|
|||
|
|
@ -346,14 +346,17 @@ pub fn loadQuery(entity: EntityType, query_type: QueryTypeEnum) GeneratedQuery {
|
|||
.entity_info => switch (entity) {
|
||||
.scrobble => unreachable,
|
||||
.song =>
|
||||
\\SELECT * FROM
|
||||
\\(SELECT *, TO_CHAR(ROW_NUMBER() OVER (ORDER BY scrobbles DESC),'FM99999th') AS rank FROM
|
||||
\\(SELECT songs.name AS song_name, songs.id AS song_id, COUNT(scrobbles) AS scrobbles
|
||||
\\FROM albumsongs
|
||||
\\INNER JOIN songs ON albumsongs.song_id = songs.id
|
||||
\\INNER JOIN scrobbles ON scrobbles.albumsong = albumsongs.id
|
||||
\\GROUP BY songs.id))
|
||||
\\WHERE song_id = $1
|
||||
\\WITH ranked AS (
|
||||
\\SELECT songs.name AS song_name, COUNT(songs.id) AS scrobbles, RANK() OVER ( ORDER BY COUNT(songs.id) DESC) AS rank, songs.id AS song_id
|
||||
\\FROM scrobbles
|
||||
\\INNER JOIN albumsongs ON albumsongs.id = scrobbles.albumsong
|
||||
\\INNER JOIN songs ON songs.id = albumsongs.song_id
|
||||
\\GROUP BY songs.id)
|
||||
\\SELECT * FROM (SELECT song_name, scrobbles, TO_CHAR(rank,'FM9999th') AS rank, song_id,
|
||||
\\( rank = lag(rank, 1, -1::bigint) OVER (ORDER BY rank)
|
||||
\\OR rank = lead(rank, 1, -1::bigint) OVER (ORDER BY rank)
|
||||
\\)AS is_tie
|
||||
\\FROM ranked) WHERE song_id = $1;
|
||||
,
|
||||
.album =>
|
||||
\\SELECT album_name, t.album_id, artists.name AS artist_name, artists.id AS artist_id, song_num, scrobbles, rank FROM
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue