Add unique list of genres to Livebook
This commit is contained in:
+25
-5
@@ -20,9 +20,7 @@ opts = [
|
|||||||
{:ok, conn} = Kino.start_child({Exqlite, opts})
|
{:ok, conn} = Kino.start_child({Exqlite, opts})
|
||||||
```
|
```
|
||||||
|
|
||||||
## Aggregates
|
## Number of releases per record
|
||||||
|
|
||||||
### Number of releases per record
|
|
||||||
|
|
||||||
<!-- livebook:{"attrs":"eyJjYWNoZV9xdWVyeSI6dHJ1ZSwiY29ubmVjdGlvbiI6eyJ0eXBlIjoic3FsaXRlIiwidmFyaWFibGUiOiJjb25uIn0sImRhdGFfZnJhbWVfYWxpYXMiOiJFbGl4aXIuRXhwbG9yZXIuRGF0YUZyYW1lIiwicXVlcnkiOiJzZWxlY3RcbiAgZGlzdGluY3QganNvbl9leHRyYWN0KGFydGlzdHMsICckWzBdLm5hbWUnKSBBUyBhcnRpc3RfbmFtZSxcbiAgdGl0bGUsXG4gIGpzb25fYXJyYXlfbGVuZ3RoKHJlbGVhc2VfaWRzKSBBUyBudW1iZXJfb2ZfcmVsZWFzZXNcbmZyb20gcmVjb3Jkc1xub3JkZXIgYnkgbnVtYmVyX29mX3JlbGVhc2VzIGRlc2NcbjsiLCJyZXN1bHRfdmFyaWFibGUiOiJjb3VudF9ieV9yZWxlYXNlcyIsInRpbWVvdXQiOm51bGx9","chunks":null,"kind":"Elixir.KinoDB.SQLCell","livebook_object":"smart_cell"} -->
|
<!-- livebook:{"attrs":"eyJjYWNoZV9xdWVyeSI6dHJ1ZSwiY29ubmVjdGlvbiI6eyJ0eXBlIjoic3FsaXRlIiwidmFyaWFibGUiOiJjb25uIn0sImRhdGFfZnJhbWVfYWxpYXMiOiJFbGl4aXIuRXhwbG9yZXIuRGF0YUZyYW1lIiwicXVlcnkiOiJzZWxlY3RcbiAgZGlzdGluY3QganNvbl9leHRyYWN0KGFydGlzdHMsICckWzBdLm5hbWUnKSBBUyBhcnRpc3RfbmFtZSxcbiAgdGl0bGUsXG4gIGpzb25fYXJyYXlfbGVuZ3RoKHJlbGVhc2VfaWRzKSBBUyBudW1iZXJfb2ZfcmVsZWFzZXNcbmZyb20gcmVjb3Jkc1xub3JkZXIgYnkgbnVtYmVyX29mX3JlbGVhc2VzIGRlc2NcbjsiLCJyZXN1bHRfdmFyaWFibGUiOiJjb3VudF9ieV9yZWxlYXNlcyIsInRpbWVvdXQiOm51bGx9","chunks":null,"kind":"Elixir.KinoDB.SQLCell","livebook_object":"smart_cell"} -->
|
||||||
|
|
||||||
@@ -43,7 +41,7 @@ count_by_releases =
|
|||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Count of records per artist
|
## Count of records per artist
|
||||||
|
|
||||||
<!-- livebook:{"attrs":"eyJjYWNoZV9xdWVyeSI6dHJ1ZSwiY29ubmVjdGlvbiI6eyJ0eXBlIjoic3FsaXRlIiwidmFyaWFibGUiOiJjb25uIn0sImRhdGFfZnJhbWVfYWxpYXMiOiJFbGl4aXIuRXhwbG9yZXIuRGF0YUZyYW1lIiwicXVlcnkiOiJzZWxlY3QganNvbl9leHRyYWN0KGFydGlzdC52YWx1ZSwgJyQubmFtZScpIGFzIG5hbWUsIGNvdW50KDEpIGFzIGNcbmZyb20gcmVjb3JkcywganNvbl9lYWNoKHJlY29yZHMuYXJ0aXN0cykgYXJ0aXN0XG5ncm91cCBieSBuYW1lXG5vcmRlciBieSBjIGRlc2NcbjsiLCJyZXN1bHRfdmFyaWFibGUiOiJjb3VudF9ieV9hcnRpc3QiLCJ0aW1lb3V0IjpudWxsfQ","chunks":null,"kind":"Elixir.KinoDB.SQLCell","livebook_object":"smart_cell"} -->
|
<!-- livebook:{"attrs":"eyJjYWNoZV9xdWVyeSI6dHJ1ZSwiY29ubmVjdGlvbiI6eyJ0eXBlIjoic3FsaXRlIiwidmFyaWFibGUiOiJjb25uIn0sImRhdGFfZnJhbWVfYWxpYXMiOiJFbGl4aXIuRXhwbG9yZXIuRGF0YUZyYW1lIiwicXVlcnkiOiJzZWxlY3QganNvbl9leHRyYWN0KGFydGlzdC52YWx1ZSwgJyQubmFtZScpIGFzIG5hbWUsIGNvdW50KDEpIGFzIGNcbmZyb20gcmVjb3JkcywganNvbl9lYWNoKHJlY29yZHMuYXJ0aXN0cykgYXJ0aXN0XG5ncm91cCBieSBuYW1lXG5vcmRlciBieSBjIGRlc2NcbjsiLCJyZXN1bHRfdmFyaWFibGUiOiJjb3VudF9ieV9hcnRpc3QiLCJ0aW1lb3V0IjpudWxsfQ","chunks":null,"kind":"Elixir.KinoDB.SQLCell","livebook_object":"smart_cell"} -->
|
||||||
|
|
||||||
@@ -72,7 +70,7 @@ VegaLite.new(width: 600, title: "Count by Artist")
|
|||||||
|> VegaLite.encode_field(:y, "name", type: :nominal)
|
|> VegaLite.encode_field(:y, "name", type: :nominal)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Count of records by genre
|
## Count of records by genre
|
||||||
|
|
||||||
<!-- livebook:{"attrs":"eyJjYWNoZV9xdWVyeSI6dHJ1ZSwiY29ubmVjdGlvbiI6eyJ0eXBlIjoic3FsaXRlIiwidmFyaWFibGUiOiJjb25uIn0sImRhdGFfZnJhbWVfYWxpYXMiOiJFbGl4aXIuRXhwbG9yZXIuRGF0YUZyYW1lIiwicXVlcnkiOiJzZWxlY3QgZ2VucmUudmFsdWUsIGNvdW50KGdlbnJlLnZhbHVlKSBhcyBjXG5mcm9tIHJlY29yZHMsIGpzb25fZWFjaChyZWNvcmRzLmdlbnJlcykgZ2VucmVcbmdyb3VwIGJ5IGdlbnJlLnZhbHVlXG5vcmRlciBieSBjIGRlc2NcbjtcbiIsInJlc3VsdF92YXJpYWJsZSI6ImNvdW50X2J5X2dlbnJlIiwidGltZW91dCI6bnVsbH0","chunks":null,"kind":"Elixir.KinoDB.SQLCell","livebook_object":"smart_cell"} -->
|
<!-- livebook:{"attrs":"eyJjYWNoZV9xdWVyeSI6dHJ1ZSwiY29ubmVjdGlvbiI6eyJ0eXBlIjoic3FsaXRlIiwidmFyaWFibGUiOiJjb25uIn0sImRhdGFfZnJhbWVfYWxpYXMiOiJFbGl4aXIuRXhwbG9yZXIuRGF0YUZyYW1lIiwicXVlcnkiOiJzZWxlY3QgZ2VucmUudmFsdWUsIGNvdW50KGdlbnJlLnZhbHVlKSBhcyBjXG5mcm9tIHJlY29yZHMsIGpzb25fZWFjaChyZWNvcmRzLmdlbnJlcykgZ2VucmVcbmdyb3VwIGJ5IGdlbnJlLnZhbHVlXG5vcmRlciBieSBjIGRlc2NcbjtcbiIsInJlc3VsdF92YXJpYWJsZSI6ImNvdW50X2J5X2dlbnJlIiwidGltZW91dCI6bnVsbH0","chunks":null,"kind":"Elixir.KinoDB.SQLCell","livebook_object":"smart_cell"} -->
|
||||||
|
|
||||||
@@ -109,3 +107,25 @@ VegaLite.new(width: 600, title: "Count by genre")
|
|||||||
|> VegaLite.encode_field(:x, "c", type: :quantitative)
|
|> VegaLite.encode_field(:x, "c", type: :quantitative)
|
||||||
|> VegaLite.encode_field(:y, "value", type: :nominal)
|
|> VegaLite.encode_field(:y, "value", type: :nominal)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## All unique genres
|
||||||
|
|
||||||
|
<!-- livebook:{"attrs":"eyJjYWNoZV9xdWVyeSI6dHJ1ZSwiY29ubmVjdGlvbiI6eyJ0eXBlIjoic3FsaXRlIiwidmFyaWFibGUiOiJjb25uIn0sImRhdGFfZnJhbWVfYWxpYXMiOiJFbGl4aXIuRXhwbG9yZXIuRGF0YUZyYW1lIiwicXVlcnkiOiJzZWxlY3QgZGlzdGluY3QgZ2VucmUudmFsdWVcbmZyb20gcmVjb3JkcywganNvbl9lYWNoKHJlY29yZHMuZ2VucmVzKSBnZW5yZVxuO1xuIiwicmVzdWx0X3ZhcmlhYmxlIjoiZ2VucmVzIiwidGltZW91dCI6bnVsbH0","chunks":null,"kind":"Elixir.KinoDB.SQLCell","livebook_object":"smart_cell"} -->
|
||||||
|
|
||||||
|
```elixir
|
||||||
|
genres =
|
||||||
|
Exqlite.query!(
|
||||||
|
conn,
|
||||||
|
~S"""
|
||||||
|
select distinct genre.value
|
||||||
|
from records, json_each(records.genres) genre
|
||||||
|
;
|
||||||
|
|
||||||
|
""",
|
||||||
|
[]
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
```elixir
|
||||||
|
Enum.join(genres.rows, ",")
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user