2014-04-07 84 views
0

我有一个表,可以像这样的记载:SQL - 如何找到一个只包含1的字段值

member  value 
0001   1 
0001   2 
0001   3 
0002   1 
0002   2 
0003   1 

基本上就是我需要做的是检索成员3,因为他们只有一个记录的值为1.成员2的记录值为1和2,成员3的记录值为1,2和3.

请帮忙!

感谢

罗布

+1

请发表您的代码,你试过到目前为止并在sqlfiddle你的表。 –

+0

我会问这个表是在原始问题中发布的。 StackOverflow的问题将会持续多年,但我们无法知道平台发布的帖子仍然可用多久。 –

回答

1

此作品在Transact-SQL

SELECT member, value 
    FROM TableName 
    WHERE value IN 
    (SELECT value FROM TableName 
    GROUP BY value 
    HAVING COUNT(*) = 1) 

如果它发现他们所有的单个条目多个成员。

0
select member 
from (
select '0001' as member, 1 as value 
union 
select '0001' as member, 2 as value 
union 
select '0001' as member, 3 as value 
union 
select '0002' as member, 1 as value 
union 
select '0002' as member, 2 as value 
union 
select '0003' as member, 1 as value 
) members 
group by member 
having count(*) = 1 
0

有很多复杂的答案,作为发布的时间,但这个问题可以很简单地使用GROUP BYHAVING回答:您正在使用

select member 
    from members_values 
group by member 
having count(value) = 1 

您还没有提到什么RDBMS但是AIUI,上面的代码应该是ANSI兼容的;它也假设你的桌子被称为members_values

0

听起来你正在寻找发现,仅在该表中存在,一旦member ...

以下查询组由member和证明的次数是member出现在表格

SELECT member 
    , Count(*) As number_of_apperances 
FROM your_table 
GROUP 
    BY member 

现在我们用HAVING条款来限制这种聚合,只显示那些谁似乎只是一次记录:

SELECT member 
    , Count(*) As number_of_apperances 
FROM your_table 
GROUP 
    BY member 
HAVING Count(*) = 1 
0

试试这个:

SELECT member 
FROM MyTable 
GROUP BY member 
HAVING COUNT(value) = 1 
相关问题