הצטרפו לקבוצות שלנו לקבלת עדכונים מרוכזים פעם בשבוע:

ווטסאפ:
http://wa.dwh.co.il
טלגרם:
http://telegram.dwh.co.il

שאלה בנושא סימון רנדומלי של רשומות בטבלה

More
15 years 6 months ago - 15 years 6 months ago #6238 by ohad23
הסביבה - oracle 10
קיימת טבלה המכילה מספר לקוח וקוד סגמנט לכל לקוח.
אני צריך ליצור טבלה חדשה כך שכל קבוצת סגמנט תחולק ל2 קבוצות רנדומלית ביחס של 70% ו 30% ולסמן כל לקוח ב 1 או 0 בהתאמה
לדוגמא:
סגמנט A מכיל 1000 לקוחות אז 700 יסומנו ב 1 ו 300 יסומנו ב 0 וכך הלאה
האופון בו ביצעתי את הנדרש:
יצרתי עמודה חדשה הממספרת את הלקוחות בכל קבוצה - השתמשתי בפונקציה האנליטית rank כאשר הגדרתי partition by הסגמט ומיון על פי rowid.
עמודה נוספת שיצרתי היא count לכמות הלקוחות בכל סגמנט - גם כאן ביצעתי בעזרת פונקציה אנליטית count כאשר הגדרתי partition by הסגמט .
לאחר שיש לי את 2 העמודות החדשות חילקתי את עמודת המיספור בעמודת סה"כ לקוחות בסגמנט ובניתי אינדקציה כאשר קטן מ 0.7 אז 1 אחרת 0
מאחר ואני די חדש בתחום השאלה שלי האם יש טכניקה אחרת לביצוע הנושא?
האם יש בעייתיות מסויימת בדרך שתארתי?
האם יש בעיה במיון על פי rowid ? כלומר המטרה שלי היא לחלק את האוכלוסיה בצורה רנדומלית..
תודה
Last edit: 15 years 6 months ago by ohad23.

Please התחברות to join the conversation.

More
15 years 6 months ago #6239 by eldad
לפי מה שאני מבין יצרתה תלות בין ביןן מספר השורה של הרשומה
לשייכות שלה לסגמנט וזה יכול להיות לא נכון כי הרשומות מופיעות
בסדר מסויים שנקבע ע"פ הכנסתן.
אם יש לך SSIS אזי תוכל להשתמש ברכיב ה sample
שב DATA FLOW
אם לא תוכל להשתמש בפונקציה dbms_random.value
לדוגמה: dbms_random.value(1,100) "תגריל" מספרים מ 1-100
ותוכל למיין את הרשומות המתקבלות לפי אחוזים....


)

Please התחברות to join the conversation.

More
15 years 6 months ago #6240 by ohad23
תודה
אני לי SSIS
אני אתקן לפונקציה dbms_random.value

Please התחברות to join the conversation.

Moderators: eldad
Time to create page: 0.231 seconds