Ini akan berhasil:
SELECT X,Y,Z,ROW_NUMBER() OVER (PARTITION BY X,Y,Z ORDER BY X,Y,Z)
FROM TABLE1
ROW_NUMBER() akan dicentang untuk setiap nilai di grup X,Y,Z, dan disetel ulang di grup berikutnya. Klausa ORDER BY digunakan untuk menentukan urutan yang harus dicentang, dan dapat diubah sesuai keinginan. Ini adalah salah satu fungsi analitis yang disediakan Oracle, dan bisa sangat berguna.