gpt4 book ai didi

postgresql 困难(对我来说)查询

转载 作者:行者123 更新时间:2023-11-29 13:35:45 28 4
gpt4 key购买 nike

这是我的表格:

  1. AB元组表
  2. C 表,其中包含 A.id 和 B.id 的条目
  3. D 表,其中包含带有 C.id 的条目和一个 bool 字段“open”

我想计算 D 表中“open”= true 且具有相同 A.id 和 B.id 的 C.id 的所有条目

我希望查询在一行中返回计数、公共(public) A.id 和公共(public) B.id

例如D表

D.id = 1, open=true, D.CID = 2
D.id = 2, open=true, D.CID = 3
D.id = 3, open=true, D.CID = 3
D.id = 4, open=true, D.CID = 4

C表

C.id = 2, A.id = 3, B.id = 5 
C.id = 3, A.id = 3, B.id = 5
C.id = 4, A.id = 4, B.id = 6

Bc D 中的前 3 个条目具有 CID,它们具有相同的 AID 和 BID,它们被计入同一条目。因此,查询应返回以下 2 个条目:

1. count = 3  A.id = 3  B.id = 5
2. count = 1 A.id = 4 B.id = 6

我为 AB 制作了一个元组表,因为我认为它像下面的伪代码一样工作

For each entry i in tuple Table AB 
for each entry j in Table C
for each entry k in Table D
if j.AID AND j.BID equal to i.AID and i.BID
And if k.CID = j.id
Then returnHash[i] = returnHash[i] + 1

-虽然可能没有必要

最佳答案

SELECT
COUNT(*),
c.aid,
c.bid
FROM
d INNER JOIN c
ON
d.cid = c.id
WHERE
d.open
GROUP BY
c.aid,
c.bid;

关于postgresql 困难(对我来说)查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12407021/

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