By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
create table Cst_Cust_Attributes (cust_id, attribute_value) as
select 'Cust 1', 'GUEST' from dual
union all
select 'Cust 2', 'REG' from dual
union all
select 'Cust 2', 'EVENT' from dual
union all
select 'Cust 3', 'GUEST' from dual
union all
select 'Cust 3', 'REG' from dual
union all
select 'Cust 3', 'EVENT' from dual
union all
select 'Cust 4', 'GUEST' from dual
union all
select 'Cust 4', 'REG' from dual
union all
select 'Cust 4', 'OTHER' from dual
union all
select 'Cust 5', 'OTHER' from dual
10 rows affected
SELECT cust_id, count(*)
FROM Cst_Cust_Attributes
WHERE attribute_value IN ('REG', 'GUEST', 'EVENT')
GROUP BY cust_id
CUST_ID | COUNT(*) |
---|---|
Cust 1 | 1 |
Cust 2 | 2 |
Cust 3 | 3 |
Cust 4 | 2 |
SELECT cust_id, count(*)
FROM Cst_Cust_Attributes
WHERE attribute_value IN ('REG', 'GUEST', 'EVENT')
GROUP BY cust_id
HAVING count(*) = 3
CUST_ID | COUNT(*) |
---|---|
Cust 3 | 3 |
-- create duplicate
insert into Cst_Cust_Attributes (cust_id, attribute_value)
values ('Cust 3', 'REG')
1 rows affected
SELECT cust_id
FROM Cst_Cust_Attributes
WHERE attribute_value IN ('REG', 'GUEST', 'EVENT')
GROUP BY cust_id
HAVING count(*) = 3
SELECT cust_id
FROM Cst_Cust_Attributes
WHERE attribute_value IN ('REG', 'GUEST', 'EVENT')
GROUP BY cust_id
HAVING count(distinct attribute_value) = 3
CUST_ID |
---|
Cust 3 |