gpt4 book ai didi

sql - 如何通过 select 和 subselect 或 join 语句获取数据

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

我在 postgres 数据库中有这些数据:

id type  repair status 
1 0 open
1 1 repaired
2 0 open
3 0 open
3 1 repaired
3 1 repaired
4 1 repaired
5 0 open
5 1 open
5 1 repaired
5 0 open
5 1 repaired
6 1 repaired
6 1 open

我想获取所有 id 的状态(id 可以是书之类的东西)。类型列表示:0 不可预订,1:可预订。

示例编号:5我只想获取不可预订的类型,因为有数据集修复状态打开并且事物不可预订。

示例编号:6我只想获得可预订的类型,因为尽管维修状态已打开,但它仍是可预订的。

我可以通过一个选择查询来完成吗(这个查询可以包含子查询或/和连接)?

我期望这样的结果:

id type  repair status 
1 0 open
2 0 open
3 0 open
4 1 repaired
5 0 open
6 1 open

最佳答案

如果您希望在 Postgres 中每个 id 一行,最好的解决方案是 distinct on。唯一的问题是您的 order by 子句。

您的规则很难解读。我最好的猜测是:

select distinct on (id) t.*
from t
order by id, bookable desc, (status = 'open')::int desc;

在标准 SQL 中,您可以将 order by 更改为:

order by id, bookable desc,
(case when status = 'open' then 1 else 0 end)

关于sql - 如何通过 select 和 subselect 或 join 语句获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56186073/

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