gpt4 book ai didi

sql连接表,没有提供完美的结果

转载 作者:行者123 更新时间:2023-11-29 13:15:14 26 4
gpt4 key购买 nike

让我解释一下我需要什么,我有 2 个名为 A 和 B 的表。B 是 A 的子表。

这是架构:

------------------------
Table B:
itemId version qty AId
44 1 1 200
44 1 2 201
44 2 2 200
------------------------
Table A:
id tId
200 100
201 100
------------------------

这就是我需要的:我需要具有相同 tId 的所有最新版本数量的总和。

这是我的查询:

select sum(qty) as sum from B
left join A on A.id=B.AId
where itemId=44 and tId=100 and
version=(select max(version) from B where itemId=44 and tId=100)

当一项得到版本 2 而版本 1 被忽略时,结果出错。

谢谢。

编辑:

我真正需要的是:

itemId version qty  AId
44 2 2 200
44 1 2 201

Sum(qty) 的结果必须为 4,因为它们具有相同的 tId,并且每个 AId 中都有 Max version。

最佳答案

使用窗口函数。

select itemid, version, qty, aid
from (
select *, max(version) over (partition by AId) as latestVersion
from B
) as B
where version = latestVersion

总结

select tId, SUM(qty) AS qty_sum
from (
select *, max(version) over (partition by AId) as latestVersion
from B
) as B
join A on B.AId = A.id
where version = latestVersion
group by tId

关于sql连接表,没有提供完美的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50035136/

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