sql - 归档具有相同状态的记录
问题描述
我有一个父表 p 和子表 c。
p
id varchar2(10),
status varchar2(10),
add_date date
c
id varchar2(10),
p_id varchar2(10),(foreign key to p)
status varchar2(10)
add_date date
例如,P 记录的状态为 'COMPLETE' p_id 在 c 中可以有多个记录。我只想查询所有 p_id 条目的状态为“完成”的 c 的记录
解决方案
您可以使用group by
如下:
Select p.id
From table_p p join table_c c
on p.id = c.p_id
Where p.status = 'complete'
Group by p.id
Having count(1) = sum(case when c.status = 'COMPLETE' then 1 end);
干杯!!
推荐阅读
- javascript - VSCode 仅在某处导入时通过相应的 Foo.d.ts 为 Foo.js 提供智能感知;如何在 Foo.js 本身中启用智能感知?
- android - Ionic 5 应用程序在闪屏后卡在白屏上
- python - 熊猫:如何从同一列但不同的行填写值
- amazon-web-services - Golang AWS Firehose 使用 json 字段名称而不是结构字段名称
- spring-webflux - 如何在spring webflux中使用对象映射器以非阻塞方式将对象转换为映射
- amazon-web-services - 为什么 AWS 中的 NLB 不需要安全组?
- python - Python。sys/resource.h:构建 whl 时没有此类文件或目录错误
- python - 有条件地打破 tensorflow.while_loop
- python - 如何在 Qubole 中获取 Python 以将 CSV 和 TXT 文件保存到 Azure 数据湖?
- celery - Celery:根据worker内存动态分配并发