diff --git a/src/database.py b/src/database.py index d55b865..dabc9af 100644 --- a/src/database.py +++ b/src/database.py @@ -550,25 +550,25 @@ def get_stats() -> dict: ) """).fetchone()[0] - # Количество полностью озвученных сценариев (все дорожки сценария озвучены) + # Количество полностью озвученных сценариев (все дорожки озвучены хотя бы раз) stats["completed_scenarios"] = conn.execute(""" SELECT COUNT(*) FROM scenarios s WHERE ( SELECT COUNT(DISTINCT speaker_id) FROM replicas WHERE scenario_id = s.id ) = ( SELECT COUNT(DISTINCT speaker_id) FROM ( - SELECT r.scenario_id, rep.speaker_id, COUNT(*) as cnt + SELECT rep.speaker_id FROM recordings r JOIN replicas rep ON r.scenario_id = rep.scenario_id AND r.replica_index = rep.replica_index WHERE r.scenario_id = s.id - GROUP BY r.scenario_id, rep.speaker_id - HAVING cnt = ( + GROUP BY rep.speaker_id, r.user_id + HAVING COUNT(*) = ( SELECT COUNT(*) FROM replicas rp - WHERE rp.scenario_id = r.scenario_id + WHERE rp.scenario_id = s.id AND rp.speaker_id = rep.speaker_id ) - ) AS completed + ) AS completed_tracks ) """).fetchone()[0]