Tùy chọn đơn giản nhất thường là một cái gì đó như thế này
SQL> ed
Wrote file afiedt.buf
1 with x as (
2 select 1 id, 1 val from dual union all
3 select 1 id, 2 val from dual union all
4 select 1 id, 3 val from dual union all
5 select 2 id, 1 val from dual union all
6 select 2 id, 2 val from dual union all
7 select 3 id, 1 val from dual union all
8 select 3 id, 2 val from dual union all
9 select 3 id, 3 val from dual union all
10 select 4 id, 1 val from dual
11 )
12 select id
13 from x
14 where val in (1,2,3)
15 group by id
16* having count(distinct val) = 3
SQL> /
ID
----------
1
3
WHERE
mệnh đề xác định các giá trị mà bạn quan tâm. HAVING
mệnh đề cho bạn biết có bao nhiêu giá trị trong số đó cần tồn tại. Ví dụ:nếu bạn muốn tất cả các hàng có ít nhất 2 trong 3 giá trị, bạn sẽ thay đổi HAVING
mệnh đề tìm kiếm COUNT
trong tổng số 2.
Nếu một val
cụ thể được đảm bảo xảy ra nhiều nhất một lần cho mỗi id
, bạn có thể loại bỏ distinct
trong HAVING
mệnh đề.