PDA

View Full Version : حرفه ای: انتخاب n رکورد تصادفی



h_jafarnezhad
دوشنبه 13 مهر 1394, 17:25 عصر
سلام میخوام 37500 تا رکورد رو به صورت تصادفی انتخاب کنم دستوری ک توی کوئری باید بزنم چیه؟ خیلی فوریه

Rasool-GH
دوشنبه 13 مهر 1394, 19:37 عصر
سلام
برای انتخاب کردن تعداد مشخصی از دیتا میتونید از این روش استفاده کنید که در کوئری یک ردیف تشکیل بدید و شرط اون ردیف رو برابر بازه ای که مایل هستید تعیین کنید .
برای تصادفی بودن نمیتونم روش خوبی پیشنهاد بدم ولی میتونید یک فیلد به جدول اضافه کنید و برای هر رکورد یک عدد رندم از تابع Rnd بگیرید و قبل از گرفتن کوئری جدول رو بر اون اساس سورت کنید

با این کد میتونید به کوئری ردیف اضافه کنید

RowNum: DCount("[FieldName]";"[tblNames]";"[FieldName]<="& [FieldName])

alirezabahrami
دوشنبه 13 مهر 1394, 19:59 عصر
سلام میخوام 37500 تا رکورد رو به صورت تصادفی انتخاب کنم دستوری ک توی کوئری باید بزنم چیه؟ خیلی فوریه

سلام
با فرض اینکه شما یک جدول دارید با عنوان table1 و در این جدول دو فیلد با عناوین ID و FirstName وجود دارد .
یک کوئری ایجاد کن و در قسمت SqlWiew آن کد زیر را وارد کن!
البته این نمونه برای 5 رکورد بطور تصادفی از 10 رکورد موجود در نظر گرفته شده است و شما میتوانید با توجه به تعدادرکورد های جدول خود این تعداد را در قسمت SqlWiew تغییر دهید .
نمونه ضمیمه را ملاحظه کن !
موفق باشید

Rasool-GH
سه شنبه 14 مهر 1394, 11:21 صبح
سلام جناب بهرامی .

در صورتی که مقصود تولید عدد تصادفی باشه این کد کافیه .

Rnd([ID])

لطف میکنید دلیل استفاده از این کد رو توضیح بدید

Rnd(Int(Now()*[ID])-Now()*[ID])
ممنون

abas1388
سه شنبه 14 مهر 1394, 13:50 عصر
سلام
اتفاقاً بنده هم در خصوص این لینک (http://barnamenevis.org/showthread.php?471381-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%AA%D8%B5%D8%A7%D8%AF%D9%81%DB%8C-%DA%86%D9%86%D8%AF-%DA%A9%D8%AF&p=2113572#post2113572) قبلاً از آقای بهرامی سوال کرده بودم و یادم هست ایشون اظهار نمودن با توجه به خروجی کد فوق احتمال تکرار رکوردها در تعداد بالا کمتر میشود .