给出以下数据/表:
User|Value
A 1
A 1
B 3
B 1
A 1
A 3
A 3
B 1
B 1
A 1
B 1
B 1
A 3
A 3
B 1
在这里,我想挑选那些多次交替使用Value列的用户。 例如。这里B不是问题,因为它只改变一次,另一方面A改变,我想要一个返回A的sql选择。
我还没有找到任何关于如何做到这一点的例子! :(
答案 0 :(得分:1)
我认为这应该有效:
SELECT DISTINCT u1.UserName
FROM Users u1
INNER JOIN Users u2 ON u1.UserName = u2.UserName
INNER JOIN Users u3 ON u1.UserName = u3.UserName
WHERE u1.Value <> u2.Value
AND u1.UserID < u2.UserID
AND u2.Value <> u3.Value
AND u2.UserID < u3.UserID
假设您的表名为“用户”,当然:)
答案 1 :(得分:0)
declare @t table(user_id char(1), val tinyint)
insert into @t
select 'A', 1
union all
select 'A', 1
union all
select 'B', 3
union all
select 'B', 1
union all
select 'A', 1
union all
select 'A', 3
union all
select 'A', 2
union all
select 'A', 1
union all
select 'B', 1
union all
select 'B', 1
union all
select 'A', 1
select user_id, count(distinct val)
from @t
group by user_id
having count(distinct val) > 2