Tohle by mělo stačit:
SELECT X,Y,Z,ROW_NUMBER() OVER (PARTITION BY X,Y,Z ORDER BY X,Y,Z)
FROM TABLE1
ROW_NUMBER() se zatrhne pro každou hodnotu ve skupině X,Y,Z a resetuje se u další skupiny. Klauzule ORDER BY se používá k definování, v jakém pořadí má zaškrtávat, a lze ji změnit na libovolnou hodnotu. Toto je jedna z analytických funkcí, které Oracle poskytuje, a může být velmi užitečná.