これが私のデータの例です。QueryIDとRoyIDがテーブル内の他のエントリと同じである余分なデータをすべて削除しようとしていますが、少なくとも1つのレコードを保持したいと思います。一部のレコードにはDEMO_12345などのIDがあるため、ID列でminまたはmax関数を使用できるかどうかはわかりません。
ID QUERY_ID ROYALTY_ID
RTSQR1652 SQ1421 ROY25644005
RTSQR1653 SQ1421 ROY25636406
RTSQR1654 SQ1421 ROY25636557
RTSQR1655 SQ1421 ROY25636558
RTSQR1656 SQ1421 ROY25636559
RTSQR1657 SQ1421 ROY25636560
IDの代わりにROWIDを使うことを考えていました。次のクエリは機能しますか?
DELETE FROM RT_SOURCE_QUERY_ROYALTIES WHERE ROWID NOT IN (
SELECT MAX(ROWID) FROM RT_SOURCE_QUERY_ROYALTIES GROUP BY ROYALTY_ID, QUERY_ID);