上級:
私にはチェックリストがあり、チェックリストにはチェックリスト項目があります。完了したチェックリストの数を取得したい。具体的には、チェックリスト項目はあるがすべて完了しているチェックリストです。
テーブル:
Table "checklists"
| Column | Type |
+--------------+------------------------+
| id | integer |
| name | character varying(255) |
Table "checklist_items"
| Column | Type |
+--------------+------------------------+
| id | integer |
| completed | boolean |
| name | character varying(255) |
| checklist_id | integer |
質問: 完了したチェックリストの数を確認するには、どのクエリを使用しますか? 具体的には、チェックリスト項目が完了しているものと未完了のものがあるチェックリストと、チェックリスト項目がないチェックリストを除外するように注意してください。
これまでに試した:
SELECT DISTINCT COUNT(DISTINCT "checklists"."id")
FROM "checklists"
INNER JOIN "checklist_items" ON "checklist_items"."checklist_id" = "checklists"."id"
WHERE "checklist_items"."completed" = 't'
この質問の問題点は、部分的に完了したチェックリストを除外していないことです。