高水平:
我有清单,清单有清单项目。我想获得已完成的清单的计数。具体来说,包含清单项目但已全部完成的清单。
表:
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'
这个问题的问题在于它不排除部分完成的清单。