sql >> データベース >  >> RDS >> Oracle

Oracle テーブルの行を比較し、一致する行を更新します

    テストされていませんが、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. SQLのmonthnameでグループ化

    2. PostgreSQL多次元配列

    3. スーパーユーザーCREATEEXTENSIONhstoreのみが作成でき、Herokuでは作成できないのはなぜですか?

    4. PHP、Python、PostgreSQLの設計はビジネスアプリケーションに適していますか?