Your music, beautifully tracked. All yours. (coming soon) teal.fm
teal-fm atproto
at main 1.8 kB view raw
1{ 2 "db_name": "PostgreSQL", 3 "query": "\n SELECT DISTINCT\n ae1.name as synthetic_name,\n ae2.name as target_name,\n similarity(LOWER(TRIM(ae1.name)), LOWER(TRIM(ae2.name))) as similarity_score,\n COUNT(ptae1.play_uri) as synthetic_plays,\n COUNT(ptae2.play_uri) as target_plays\n FROM artists_extended ae1\n CROSS JOIN artists_extended ae2\n LEFT JOIN play_to_artists_extended ptae1 ON ae1.id = ptae1.artist_id\n LEFT JOIN play_to_artists_extended ptae2 ON ae2.id = ptae2.artist_id\n WHERE ae1.id != ae2.id\n AND ae1.mbid_type = 'synthetic'\n AND ae2.mbid_type = 'musicbrainz'\n AND similarity(LOWER(TRIM(ae1.name)), LOWER(TRIM(ae2.name))) >= $1\n GROUP BY ae1.id, ae1.name, ae2.id, ae2.name, similarity_score\n ORDER BY similarity_score DESC\n LIMIT 10\n ", 4 "describe": { 5 "columns": [ 6 { 7 "ordinal": 0, 8 "name": "synthetic_name", 9 "type_info": "Text" 10 }, 11 { 12 "ordinal": 1, 13 "name": "target_name", 14 "type_info": "Text" 15 }, 16 { 17 "ordinal": 2, 18 "name": "similarity_score", 19 "type_info": "Float4" 20 }, 21 { 22 "ordinal": 3, 23 "name": "synthetic_plays", 24 "type_info": "Int8" 25 }, 26 { 27 "ordinal": 4, 28 "name": "target_plays", 29 "type_info": "Int8" 30 } 31 ], 32 "parameters": { 33 "Left": [ 34 "Float4" 35 ] 36 }, 37 "nullable": [ 38 false, 39 false, 40 null, 41 null, 42 null 43 ] 44 }, 45 "hash": "00b655145e9033d951628a8bc69521815b3af632d0433f87d78c5403dd22eb75" 46}