diff --git a/main.py b/main.py index 42dfdcb..9a5761b 100644 --- a/main.py +++ b/main.py @@ -28,14 +28,18 @@ def fetch_titles_and_genres(engine: Engine) -> pd.DataFrame: query = """SELECT title, genres FROM audiobookshelf.ao3;""" return run_query(engine, query) -def count_genre_occurrences(data: pd.DataFrame, column: str = "genres") -> pd.Series: - """Count how many times each genre appears across all titles.""" - return data.explode(column)[column].value_counts() +def count_genre_occurrences(engine: Engine) -> pd.DataFrame: + """Count how many times each genre appears across all titles in SQL before returning.""" + 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(): engine = get_engine() - data = fetch_titles_and_genres(engine) - genre_counts = count_genre_occurrences(data) + #data = fetch_titles_and_genres(engine) + genre_counts = count_genre_occurrences(engine) print(genre_counts) # print(data.head())