इसका मतलब है कि आपको प्रत्येक समूह के कम से कम एक रिकॉर्ड और यादृच्छिक आधार पर अधिक रिकॉर्ड चाहिए तो इसे आजमाएं:
SELECT GROUP, VALUE FROM
(SELECT T2.GROUP, T2.VALUE,
ROW_NUMBER()
OVER (PARTITION BY T2.GROUP ORDER BY NULL) AS RN
FROM TABLE_1 T1
JOIN TABLE_2 T2
ON(T1.RANGE = T2.GROUP))
WHERE RN = 1 OR
CASE WHEN RN > 1
AND RN = CEIL(DBMS_RANDOM.VALUE(1,RN))
THEN 1 END = 1
FETCH FIRST 10000 ROWS ONLY;
यहाँ, Rownum
प्रत्येक समूह के लिए यादृच्छिक आधार पर लिया जाता है और फिर परिणाम rownum
. ले रहा है 1 और अन्य rownum
अगर वे यादृच्छिक शर्त पूरी करते हैं।
चीयर्स!!