There’s no way to establish it directly with a database query without having a separate datatype, but you could do the exact same thing client-side - it won’t be scalable, but neither is using lists for this in the first place, so assuming the amount of data involved here is not large, it should be ok (not ideal, but saves having to restructure your database).

User’s Favourite songs: each item’s tags

Grouped by Name
[with an aggregation of Count]

Sorted by Count
[Descending ‘yes’]

Items until 3