genre counts in SQL

This commit is contained in:
CC
2026-09-01 23:04:24 +01:00
parent d2ff44e5d5
commit fdc4725ca3

14
main.py
View File

@@ -28,14 +28,18 @@ def fetch_titles_and_genres(engine: Engine) -> pd.DataFrame:
query = """SELECT title, genres FROM audiobookshelf.ao3;""" query = """SELECT title, genres FROM audiobookshelf.ao3;"""
return run_query(engine, query) return run_query(engine, query)
def count_genre_occurrences(data: pd.DataFrame, column: str = "genres") -> pd.Series: def count_genre_occurrences(engine: Engine) -> pd.DataFrame:
"""Count how many times each genre appears across all titles.""" """Count how many times each genre appears across all titles in SQL before returning."""
return data.explode(column)[column].value_counts() query = """SELECT genre, COUNT(*)
FROM audiobookshelf.ao3, unnest(genres) AS genre
GROUP BY genre
ORDER BY COUNT(*) DESC;"""
return run_query(engine, query)
def main(): def main():
engine = get_engine() engine = get_engine()
data = fetch_titles_and_genres(engine) #data = fetch_titles_and_genres(engine)
genre_counts = count_genre_occurrences(data) genre_counts = count_genre_occurrences(engine)
print(genre_counts) print(genre_counts)
# print(data.head()) # print(data.head())