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

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

הצגת אחוזון בMDX

More
16 years 10 months ago #4199 by עידן
האם מישהו יודע איך ניתן לחשב אחוזון ב-MDX?
למשל: יש X מקרים במערכת, עבור כל מקרה יש זמן המתנה, אני מחפש פונקציה שתחשב את זמן ההמתנה שנמצא באחוזון מסויים.

תודה.

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

More
16 years 10 months ago #4206 by eldad
אחלה שאלה ,יכול להיות שיש פתרון יותר יעיל.
בצע : rank/count
פונקציה RANK מחזירה לך את המיקום של כל case ו החלוקה במספר ה  case-ים מחזירה
לך את האחוזון של כל אחד מהם

Case case time # %
A 8 1 0.1
B 58 5 0.5
c 66 7 0.7
d 91 9 0.9
e 14 2 0.2
f 97 10 1
g 53 4 0.4
h 46 3 0.3
i 59 6 0.6
j 76 8 0.8


אגב
Median  יתן לך את החציון

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

More
16 years 10 months ago #4209 by עידן
תודה,

הפתרון שהצעת אכן פותר את הבעיה, אך בזמני תגובה בלתי אפשריים כיוון שבכל קריאה לפונקציה מתבצע חישוב של RANK על כל הרשומות בטבלה (בדקתי על 100,000 רשומות וזה לקח קרוב ל12 שניות).
חשבתי לבנות מימד שיכיל את כל ערכי זמני ההמתנה, לחבר אותו לVALUE ולבצע COUNT ככה שאקבל את מספר הרשומות שמופיעות עבור כל ערך של זמן המתנה (יש לציין כי הזמנים הם ערכים שלמים).

פה אני תקוע, מצאתי את הערך של האחוזון ה-80 ע"י חלוקה בסהכ הרשומות, השאלה היא איך אני מצליח לקשר את הערך שמצאתי לערך במימד בו ערכי הcount המצטברים שווים לערך האחוזון.

עידן.


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

More
16 years 10 months ago #4210 by eldad
לדעתי לבנות מימד ממש על הערכים של הזמן יגרור בעיות ביצועים במודל ואולי כדי
יהיה לעשות את זה על קבוצות , לדוגמה: אם זמן ההמתנה הינו בשעות ומתפלג בין שעה לשעתיים
הייתי מקבץ את זמנים אילו לפי קיבוץ של 10 דקות.

לגבי זמן ביצוע ה RANK, 
מציאת אחוזונים הינו פעולה שנעשת לא כל שעה וגם לא כל יום ולכן אני חושב שיש מקום לשקול אולי
דרך אחרת כגון:
א. ביצוע שלי החישוב ב ETL
ב. הכנת דוח ב reporting services שיחושב פעם ביום ( snapshot)

לגבי הצגת כל המקרים באחוזון ה 80 ומעלה, צריך שוב להפעיל filter..... וזה לא סימפטי.
מה ה viewer בו אתה משתמש.

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

More
16 years 10 months ago #4211 by עידן
אני עובד עם SSRS+PPS.

מצאתי אתמול פתרון קצת מורכב אבל יעיל (יחסית) מבחינת ביצועים.

1. עיגול הזמנים לשעות.
2. יצירת מימד זמנים שמתקשר לVALUE ב-FACT וביצוע COUNT.
3. יצירת member שיכיל את  ערך האחוזון הנדרש- סכימת כל ערכי הCOUNT הרלוונטיים חלוקה ב-10 וכפל באחוזון הרצוי(7 עבור אחוזון 70 וכך הלאה).
4. בניית MEMBER חדש שיבצע סכימה מצטברת של ערכי המימד (הממויינים).
5. הצגת הערך המינימלי במימד בו הסכימה המצטברת (חושב בסעיף 4) קטנה מערך האחוזון הרצוי (חושב בסעיף 3). הערך הזה מייצג את זמן ההמתנה בשעות שמתאים לאחוזון.

יש לציין שאני עובד על 100,000 רשומות ומרגיש האטה קלה בביצועים, אני לא בטוח שהפתרון יעבוד בצורה טובה עבור נפחים גדולים משמעותית.

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

Moderators: eldad
Time to create page: 0.291 seconds