create table t (user_id int, value_id int, amount int, created_at date, updated_at date);
insert into t values
(1, 22, 1, '2022-02-02', '2022-02-02'),
(1, 23, 2, '2022-02-02', '2022-02-02'),
(1, 23, 1, '2022-02-02', '2022-02-02'),
(2, 22, 3, '2022-02-02', '2022-02-02'),
(2, 22, 4, '2022-02-02', '2022-02-02'),
(2, 22, 1, '2022-02-02', '2022-02-02'),
(3, 24, 3, '2022-02-02', '2022-02-02'),
(3, 24, 3, '2022-02-02', '2022-02-02');
select user_id
from t
where value_id = 22
group by user_id
having count(*) = 1
intersect
select user_id
from t
where value_id = 23
group by user_id
having count(*) = 2