sql - SQL 查询仅获取具有特定类型的记录
问题描述
我有以下类型的记录
account amount code type c_date
AAAA 100.00 111 C 2018-01-01
AAAA 200.00 666 C 2018-01-01
AAAA 300.00 777 C 2018-01-01
BBBB 500.00 111 C 2018-01-01
BBBB 400.00 222 B 2018-01-01
BBBB 600.00 111 C 2018-01-01
DDDD 100.00 111 C 2018-01-01
DDDD 200.00 777 C 2018-01-01
EEEE 900.00 333 B 2018-01-01
EEEE 1000.00 222 B 2018-01-01
EEEE 1200.00 111 C 2018-01-01
FFFF 123.00 111 C 2018-01-01
GGGG 1223.00 222 B 2018-01-01
我只需要检索仅在type = 'C'
DESIRED RECORDS 上具有的那些帐户:
AAAA
DDDD
FFFF
我的查询:
SELECT DISTINCT ACCOUNT,TYPE,COUNT(*) FROM Table_1
WHERE ACCOUNT IN (SELECT account
FROM Table_1
group by account
)
GROUP BY ACCOUNT,TYPE
HAVING TYPE = 'C'
ORDER BY 1
解决方案
您可以使用NOT EXISTS
:
SELECT * -- or DISTINCT Account
FROM t
WHERE NOT EXISTS (
SELECT 1
FROM t AS x
WHERE account = t.account
AND type <> 'C'
)
推荐阅读
- c - 编译C程序的两种方法
- r - 我想将我的主要 R 代码与 Shiny 结合起来。我在 R Studio 中得到输出,但在 Shiny 中没有输出。可能是什么原因?
- javascript - 保留订单和有条件地禁用按钮
- html - 使用 HTML 和 AngularJS 将 JSON 保存到文件系统
- swift - 无法解决框架问题
- angular - 我们可以使用带有对象属性的 [(ngModel)] 指令吗?
- javascript - 键盘输入极慢
- r - 如何在 R 中的绘图上连接数据点(针对每个主题)?
- reactjs - 获取ACF关系类型的相关ACF字段
- javascript - 正则表达式没有返回多个匹配项