gpt4 book ai didi

sql - 选择引用行的唯一计数

转载 作者:行者123 更新时间:2023-11-29 11:32:18 25 4
gpt4 key购买 nike

高级:

我有 list , list 有 list 项目。我想获得已完成的 list 的数量。具体来说,有 list 项目但全部完成的 list 。

表格:

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 |

问题:什么查询会给我完成的 list 计数?具体来说,要小心排除包含完整和不完整 list 项目的 list 以及没有 list 项目的 list 。

到目前为止已尝试:

SELECT DISTINCT COUNT(DISTINCT "checklists"."id")
FROM "checklists"
INNER JOIN "checklist_items" ON "checklist_items"."checklist_id" = "checklists"."id"
WHERE "checklist_items"."completed" = 't'

这个问题的问题是它不排除部分完成的 list 。

最佳答案

更快,但:

SELECT count(DISTINCT i.checklist_id)
FROM checklist_items i
LEFT JOIN checklist_items i1 ON i1.checklist_id = i2.checklist_id
AND i.completed IS NOT TRUE
WHERE i.completed
AND i1.checklist_id IS NULL;

这只会收集存在已完成项目的 list 。
并排除那些存在另一个未完成的 checklist_item(FALSENULL)。

关于sql - 选择引用行的唯一计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16242245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com