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

So sánh các hàng trong bảng oracle và cập nhật các hàng phù hợp

Chưa được kiểm tra nhưng một cái gì đó như thế này chỉ sử dụng SQL:

MERGE INTO your_table dst
USING (
  SELECT ROW_NUMBER() OVER (
             PARTITION BY tDate, Product, Price, Quantity, BuySell
             ORDER BY ID
           ) AS idx,
         COUNT( CASE BuySell WHEN 'Buy' THEN 1 END ) OVER (
             PARTITION BY tDate, Product, Price, Quantity
           ) AS num_buy,
         COUNT( CASE BuySell WHEN 'Sell' THEN 1 END ) OVER (
             PARTITION BY tDate, Product, Price, Quantity
           ) AS num_sell
  FROM   your_table
) src
ON ( src.ROWID = dst.ROWID AND src.idx <= LEAST( src.num_buy, src.num_sell ) )
WHEN MATCHED THEN
  UPDATE SET Status = 'Matched';


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cấp quyền cho người dùng trên các giản đồ khác nhau

  2. sử dụng LIKE và IN với truy vấn con trong sql

  3. 2 cách để lấy số phút từ giá trị ngày giờ trong cơ sở dữ liệu Oracle

  4. Hàm NCHR () trong Oracle

  5. Tại sao Kafka jdbc kết nối chèn dữ liệu là BLOB thay vì varchar