【发布时间】:2022-01-20 20:34:22
【问题描述】:
在 Postgres 中给出下表:
| id | some_col |
|---|---|
| 1 | a |
| 1 | b |
| 2 | a |
| 3 | a |
我想将输出作为 id 和 true(如果表中至少存在具有该 id 的一行)或 false(如果在表中找不到具有该 id 的行)。
例如 where id in (1, 2, 3, 4, 5):
| id | value |
|---|---|
| 1 | true |
| 2 | true |
| 3 | true |
| 4 | false |
| 5 | false |
我尝试使用 group by 和 case with conditions,但是否有任何优化/性能 SQL 方法来实现这一点? Bcz,groupby 确实完成了行数,这在这种情况下是不必要的。而且,对于exists 查询,我没有找到处理多行返回的方法;
提前致谢!
【问题讨论】:
-
您需要 OUTER JOIN 值 1 - 5。
标签: sql postgresql performance optimization query-optimization