gpt4 book ai didi

SQL查询根据剩余内容获取ID相同的行

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

为了这个例子的目的,假设我有一个相当简单的表:

-----------
| ID | Val|
-----------
| 01 | XX |
| 01 | YY |
| 03 | AA |
| 04 | XX |
| 02 | BB |
| 02 | AA |
| 03 | XX |
| 02 | XX |
-----------

我想选择的是 Val 有 XXAA 的 ID,所以基本上我的结果是 03 02 因为它们是唯一具有同时具有这两个值的 Val 的 ID。即使 02 也有 BB 并且即使 0104 也有 XX .

我对如何编写这个查询有点困惑。

最佳答案

使用聚合:

SELECT ID
FROM yourTable
WHERE Val IN ('XX', 'AA')
GROUP BY ID
HAVING MIN(Val) <> MAX(Val);

这里的想法是通过ID 聚合,限制为只有XXAA 值,然后断言实际上有两个不同的值(value)观。如果断言通过,则意味着 ID 具有两个值。

请注意,由于 HAVING 子句的编写方式,上述查询可以利用 (ID, Val) 上的索引。

关于SQL查询根据剩余内容获取ID相同的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57673382/

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