আপনি যদি সত্যিই পৃথক সারিগুলির একটি এলোমেলো নমুনা চান তবে সারণীটি স্যাম্পল ব্যবহার না করে এলোমেলোভাবে সারিগুলি ফিল্টার করার জন্য আপনার ক্যোয়ারীটি পরিবর্তন করুন। উদাহরণস্বরূপ, নিম্নলিখিত কোয়েরি বিক্রয়ের সারিগুলির প্রায় এক শতাংশ ফেরত দিতে NEWID ফাংশনটি ব্যবহার করে a সেলস অর্ডারডেটেল টেবিল:
SELECT * FROM Sales.SalesOrderDetail
WHERE 0.01 >= CAST(CHECKSUM(NEWID(), SalesOrderID) & 0x7fffffff AS float)
/ CAST (0x7fffffff AS int)
সেলসঅর্ডারআইডি কলামটি চেকসুম এক্সপ্রেশনটিতে অন্তর্ভুক্ত করা হয়েছে যাতে NEWID () প্রতি সারি ভিত্তিতে নমুনা অর্জনের জন্য প্রতি সারিতে একবার মূল্যায়ন করে। CAST (CHECKSUM (NEWID (), SalesOrderID) & 0x7fffffff as float / CAST (0x7fffffff AS int) এক্সপ্রেশনটি 0 এবং 1 এর মধ্যে একটি এলোমেলো ফ্লোট মানকে মূল্যায়ন করে ""
সূত্র: http://technet.microsoft.com/en-us/library/ms189108(v=sql.105).aspx
এটি নীচে আরও ব্যাখ্যা করা হয়েছে:
কিভাবে কাজ করে? আসুন যেখানে বিভাজন বিভক্ত করা এবং এটি ব্যাখ্যা।
CHECKSUM ফাংশন তালিকার আইটেমগুলির চেয়ে একটি চেকসাম গণনা করছে। সেলসঅর্ডারআইড এমনকি প্রয়োজনীয় কিনা তা নিয়ে বিতর্কযোগ্য, যেহেতু NEWID () এমন একটি ফাংশন যা একটি নতুন এলোমেলো জিআইডি ফিরিয়ে দেয়, সুতরাং একটি ধ্রুবক দ্বারা একটি এলোমেলো চিত্রকে গুণ করা যে কোনও ক্ষেত্রে এলোমেলো হতে পারে। প্রকৃতপক্ষে, বিক্রয় ওর্ডারআইডি বাদ দিলে কোনও পার্থক্য নেই বলে মনে হচ্ছে। যদি আপনি আগ্রহী পরিসংখ্যানবিদ হন এবং এটির অন্তর্ভুক্তিকে ন্যায়সঙ্গত করতে পারেন তবে দয়া করে নীচের মন্তব্যগুলি বিভাগটি ব্যবহার করুন এবং আমাকে কেন ভুল করছেন তা আমাকে জানান!
CHECKSUM ফাংশন একটি ভারবিনারি প্রদান করে। বাইনারি (111111111 ...) এর সমতুল্য 0x7fffffff দিয়ে কিছুটা বিপরীতভাবে এবং অপারেশন করা, একটি দশমিক মান দেয় যা কার্যকরভাবে 0 এবং 1 এর এলোমেলো স্ট্রিংয়ের প্রতিনিধিত্ব করে। সহ-দক্ষ 0x7fffffff দ্বারা বিভাজন কার্যকরভাবে এই দশমিক চিত্রটিকে 0 এবং 1 এর মধ্যে একটি চিত্রকে কার্যকর করে তোলে এবং তারপরে প্রতিটি সারি চূড়ান্ত ফলাফলের সেটটিতে অন্তর্ভুক্তির যোগ্যতা রয়েছে কিনা তা সিদ্ধান্ত নেওয়ার জন্য, 1 / x এর একটি প্রান্তিক ব্যবহৃত হয় (এই ক্ষেত্রে, 0.01) যেখানে নমুনা হিসাবে পুনরুদ্ধার করার জন্য x শতাংশের পরিমাণ is
উত্স: https://www.mssqltips.com/sqlservertip/3157/different-ways-to-get-random-data-for-sql-server-data-sampling