如何通过同时拥有标志 1 和 0 的人获取不同行的列表

Posted

技术标签:

【中文标题】如何通过同时拥有标志 1 和 0 的人获取不同行的列表【英文标题】:How do I get a list of distinct rows by who has both flag 1 and 0 【发布时间】:2019-04-30 17:12:01 【问题描述】:

我有一张包含用户会话的表。 列 - 用户 ID、会话 ID、已完成(位)。

我想获取 Completed = 0 和 Completed = 1 的用户列表

【问题讨论】:

我们需要一个样本数据来处理它并获得所需的结果,如果您提供您尝试解决问题的方法会很好。 【参考方案1】:

下面的查询将返回具有 Completed 列条目的 0 和 1 的 UserId。

SELECT UserId
FROM Users
WHERE Completed IN (0, 1)  
GROUP BY UserId
HAVING COUNT(DISTINCT Completed ) = 2

【讨论】:

【参考方案2】:

我愿意:

select userid
from suers
group by users
having min(completed) = 0 and max(completed) = 1;

【讨论】:

【参考方案3】:
    Select distinct userid from sessions where completed=1
    Intersect
    Select distinct userid from sessions where completed=0

相交只获取两个集合中的用户

【讨论】:

只是代码?你不认为你应该解释一下这段代码会做什么吗?

以上是关于如何通过同时拥有标志 1 和 0 的人获取不同行的列表的主要内容,如果未能解决你的问题,请参考以下文章