首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何编写查询以只选择在所有行中都存在某些值的组?

如何编写查询以只选择在所有行中都存在某些值的组?
EN

Stack Overflow用户
提问于 2016-06-17 20:10:42
回答 2查看 1K关注 0票数 1

我需要为Oracle 11g编写一个查询,以便只选择图像中突出显示的组。具体来说,有3列- A、B和C列-A、B和C。

我只需要选择C列中不包含任何null值的行组--即组3行和组5行。我只需要组号,比如只返回一个3和一个5,我可以用什么SQL函数来编写这个查询?这个查询是什么样子的?

类似于(伪代码)

代码语言:javascript
运行
复制
select colA, count(*) As cnt From tblX join to itself on something
Where ...something ... 
Group By colA

(或者我们可以跳过分组,只选择3和5或3 3和3 5)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-17 21:05:32

聚合函数COUNT(colname)将只计算非空值,因此类似的内容可能会工作:

代码语言:javascript
运行
复制
select A from yourtable
group by A
having count(A) = count(C)

假设A从未为空。

票数 1
EN

Stack Overflow用户

发布于 2016-06-17 20:51:50

可以使用not in子句和子查询。

代码语言:javascript
运行
复制
select colA, count(*) As cnt 
From tblX 
Where colA not in (select distinct colA from tblx where colC is  null)
Group By colA
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37889666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档