sql - 显示值在组中至少出现一次的所有行
问题描述
我有一个导致以下结果的 SQL 查询。RN 是每次我们使用以下 ID 之一进行交易时的行号。我只想查看在 GROUP 中具有“A”值的人的 ID。
我尝试执行 WHERE 语句,但这只会让我得到具有 A 的行......我想查看在 GROUP 中至少出现一次“A”的所有 ID 行。
这会在子查询中工作吗?
RN ID GROUP
1 001 A
2 001 B
3 001 B
1 002 B
2 002 B
解决方案
测试设置(注意Group是保留字)
create table t(rn NUMERIC(2), id varchar (3), thegroup char)
insert t values(1,'001','A')
insert t values(2,'001','B')
insert t values(3,'001','B')
insert t values(1,'002','B')
insert t values(2,'002','B')
需要查询
select *
from t
where id in (
select id
from t
where thegroup in ('A')
)
结果
rn |id |thegroup |
---|----|---------|
1 |001 |A |
2 |001 |B |
3 |001 |B |
推荐阅读
- vb.net - 级联通用接口
- mongodb - 使用 Robotframework-MongoDB-Library 在 RobotFramework 中查询到 Mongodb 的 isodate/datetime
- spring - 如何在 Spring-boot 应用程序中使用配置文件?
- java - 如何知道 WatchService 事件上的安全文件移动是否可行?
- bash - 为什么这个脚本在 for 循环之后什么都不做?
- google-data-studio - MULTIPLE 字段的直接链接中的 connectorConfig 存在问题
- javascript - 尝试测试使用来自 vuex 的 mapState 的 vue 组件
- javascript - 在for循环中的promise中表达js死锁
- reactjs - 如何在单元测试中访问子组件的功能
- java - 在以下情况下,如何使用反射为类中的所有对象调用方法?