Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Truy vấn xác thực nếu các mục tồn tại trong nhóm phân vùng

Đây là một Relational Division vấn đề nhưng bạn cần hiển thị từng GROUP riêng lẻ với mỗi Element .

Truy vấn:

SELECT  a.*
FROM    TableName a
WHERE   EXISTS
        (
            SELECT  1
            FROM    TableName b
            WHERE   a."GROUP" = b."GROUP" AND
                    b."ELEMENT" IN ('A','B')
            GROUP   BY b."GROUP"
            HAVING  COUNT(*) = 2
        )

ĐẦU RA

╔═══════╦═════════╗
║ GROUP ║ ELEMENT ║
╠═══════╬═════════╣
║     1 ║ A       ║
║     1 ║ B       ║
║     1 ║ C       ║
║     4 ║ A       ║
║     4 ║ B       ║
╚═══════╩═════════╝

Nhưng nếu bạn chỉ muốn trả về GROUP , bạn chỉ cần sử dụng cái này bên dưới

SELECT  "GROUP"
FROM    TableName b
WHERE   "ELEMENT" IN ('A','B')
GROUP   BY "GROUP"
HAVING  COUNT(*) = 2

ĐẦU RA

╔═══════╗
║ GROUP ║
╠═══════╣
║     1 ║
║     4 ║
╚═══════╝


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ý nghĩa chính xác của việc có một điều kiện như trong đó 0 =0 là gì?

  2. Cú pháp SQL động sử dụng THỰC HIỆN NGAY LẬP TỨC

  3. LỖI:Tham chiếu bộ đếm là mục tiêu của một phép gán - PL / SQL

  4. Oracle SQL tạo đầu ra ngẫu nhiên với các thẻ danh sách

  5. Cách xóa giá trị cụ thể khỏi chuỗi được phân tách bằng dấu phẩy trong oracle