שאלה מאתגרת

  • פותח הנושא uriko
  • פורסם בתאריך

uriko

New member
שאלה מאתגרת

יש לי טבלה שנראית ככה:
-----------------------
name status
-----------------------
0 a
0 a
1 b
0 a
1 a
0 b
0 b

ואני רוצה שאילתא שתביא לי את השמות שיש בהם למשל 3 מופעים רצופים של a (יכול להיות באמצע מופע של b) שבהם הסטטוס הוא 0 .

למשל בדוגמא רק a עונה לתנאי.

האם ניתן לבצע זאת בשאילתא ?

המון תודה
 

AvidaEinav

New member
תנסה ככה..

לא הכי יעיל אבל עובד.

* בהנחה שאתה יכול לשים טור IDENTITY על הטבלה שלך..
אם לא תשפוך אותה לטבלה זמנית עם טור כזה, כדי לא לאבד את הסדר המקורי.
 

AvidaEinav

New member
תיקון קטן

הקובץ הראשון לא טיפל במקרה קצה מסויים..

תנסה את זה..
 

AvidaEinav

New member
אם כך

תצטרך להשתמש ב stored procedure.
אם יש לך אפשרות כזאת יהיה אפשר לרוץ בלולאה ולספור חזרות.
 

pitoach

New member
אתגר הוא בעיני המתבונן


סיפור מהחיים: לפני כעשר שנים כשעבדתי באוניברסיטת ת"א הגיעה יום אחד קבוצה של תלמידים ביסודי. המורה שלהם נתנה להם שיעורי בית ושאלת בונוס בסיום לאתגר. השאלה היתה משהו בסגנון פעולת כפל של 3 מספרים במקום 2 מספרים כמו שהם היו רגילים...

בכל מקרה הפתרון פשוט. החלק המרכזי בפתרון (המורכבות אם רוצים להשתמש במושג זה) הוא משחקי מחשבה של אלגוריתמים על פונקציות חלון שונות על מנת שנוכל לדרג את הרשומות שלנו בהתאם לדרישות הבעיה. זה יכול לקחת מעט זמן. לשם זהירות נרשום כמו תמיד: בהנחה שהבנתי את הבעיה...

אפשר לראות דוגמה לפתרון פשוט עם מעט הסברים כאן:
http://ariely.info/Blog/tabid/83/En...ted-more-than-X-of-times-in-continuously.aspx

אני מקווה שזה עוזר להבנת הפתרון לבעיה
בברכה,

נ.ב.
הערה: uriko אני חייב לציין שלא התכוונתי לשים תגובה בגלל שלא היה לי כוח וזמן להכין לך את "שיעורי הבית". ראיתי את השאלה לפני יומיים ושלחתי לAvidaEinav הודעה קצרה בנוגע לתגובה שלו. מי שצריך עזרה מתבקש לפחות לעשות את המירב כדי להקל את החיים של מי שבא לעזור לו בהתנדבות. למשל לספק לנו DDL+DML ולחסוך זמן מיותר! תגיד תודה ל AvidaEinav שהשקיע לדעתי זמן מיותר לבצע חלק זה עבורך


* הערה לא קשורה לשאלה כאן: לכל מי שמנסה לעזור אני ממליץ דווקא לא לתת תשובות מוכנות כשאפשר ולנסות יותר לתת כיוונים לפתרונות והסברים (למרות שיותר קל פשוט לרשום פתרון במשפט אחד). גישת הפורום לא להחליף את אנשי המקצוע. מי שרוצה משהו מוכן יכול לשלם ולהעסיק איש מקצוע. גישת הפורום לעזור לאנשי מקצוע שנתקלים בבעיה ולתלמידים או מתלמדים שרוצים ללמוד כיצד להגיע לפתרון. כמו שנהגנו להגיד תמיד בזמן שגרי ניהל את הפורום: פתרון לשיעורי בית זה בפורום ממול


ובאותו הקשר אני מציע: אם מישהו לא שם DDL+DML (או קובץ מצורף במקרה של אקסס) אל תעשו את זה בשבילו אלא בקשו ממנו לבצע את העבודה השחורה. מי ששואל שאלה צריך להשקיע מעט על השאלה. לפחות חצי מהזמן שאתם משקיעים על הפתרון. מה שגם ככה הוא ילמד כיצד שואלים שאלות בפורומים מקצועיים וגם יכנס למושגים החשובים של DDL ו DML למשל...
 

uriko

New member
אז ככה...

קודם כל המון תודה על התשובה האינטילגנטית והמושקעת (ללא שום ציניות).

כשפירסמתי בפורום התושבה שציפיתי לה היא מישהו שמכיר SYNTAX ב SQL שיעשה את העבודה. וזאת כמובן לאחר שחרשתי את המסמכים ואת גוגל.
לכתוב תוכנה שעושה את זה או STORE PROCEDURE אני יודע.

אגב "שיעורי בית" - השאלה היא פרי מחשבתי ולכיף שלי בלבד - אני כבר לא בגיל לשיעורי בית.
 

pitoach

New member


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

בכל מקרה החיסרון הגדול במימד הוירטואלי הוא שאנחנו לא באמת מכירים ולא יכולים לקבל מסקנות על האדם מולינו ולכן הדברים הנאמרים הם כלליים ולא מכוונים לאדם מסויים
כמובן בעקבות זה גם יש יותר טעויות בהתרשמות על הגולש. עם הזמן חברי הקהילה הקבועים לומדים מי מולם במציאות.

* אני מבקש באופן כללי בכל פורום ובפרט כאן לנסות בפעם הבאה לשים שאלה בצורה ש"תיגבה" ממי שרוצה לעזור מינימום זמן
במקרה של שאלות על שאילתות DDL+DML הם הכרחיים (או קובץ במקרה של אקסס למשל). אם מי ששואל את השאלה לא מכין את זה אז מי שעונה יאלץ להכין את זה וחבל.

** אני שמח שהבלוג עזר כמו שאמרתי אם הפקת ממנו משהו לעתיד ולא רק לשאלה המסויימת אז אני מרגיש שעשיתי את שלי
 

AvidaEinav

New member
מקרה קצה

שים לב שלא התיחחסת למקרה שהופך את הכל לבעייתי..
כאשר הם לא רצופים
a-0
a-0
b-1
a-0
שגם זה מקרה תקין..
 

pitoach

New member
זה לא מקרה קצה לבלוג שלי


זה מכוסה בשאילתה האחרונה בבלוג בחלק של ה what more?

מה גם שזה לא עונה לדרישות של השאלה שאני שמתי הסבר עליה (לכן זה ב MORE אחרי ה FINAL), אלא מרחיב אותה מעט לשאלה כאן. הבלוג נועד לתת כיוון להבנה ולא תשובה סופית לשאלה מסויימת בפורום. הבלוג דן בשאלה מסויימת שמוצגת בהתחלה בה מקרה זה אינו עומד בדרישות השאלה.

בשל כך הפניתי אותך לבלוג נוסף ממנו אפשר להפיק עוד מידע וביחד 2 הבלוגים האלו אמורים לספק תשובה לשאלה. כפי שביצעת
.

אם הייתי רוצה לכתוב תשובה לשאלה בפורום הייתי שם אותה בפורום


* דרך אגב אם יש הערות על בלוגים שלי אז אני כן אשמח אם תעבירו אלי כדי שאוכל לתקן או להבהיר את הנושא שעולה. אני לא כותב את הבלוגים בצורת "בלוג" בו ניתן לרושם תגובות מכיוון שאני משתמש בממשק הבלוגים לכתוב מדריכים. ההבדל בין מדריך לבלוג הוא שמדריך ניתן לשפר כל הזמן ובלוג הוא יישות קבועה בזמן מסויים (כתבתי את זה באתר לשם הבהרה למה אין מקום לשים תגובות בבלוגים). אם היתי שם מקום לשים הערות אז מישהו היה למשל שם הערה שגוררת שינוי המדריך ואז מי שהיה נכנס מאוחר יותר היה רואה הערה שאינה תואמת למדריך ולא מבין למה שמו אותה...

כמובן שאני רושם פידבק לכל מי שמספק קוד או תוכן למדריך כפי שניתן לראות, כך שפשוט במקום הערה שמישהו שם אני שם את ההערה שלו בתוכן המדריך אם צריך


בקיצור הערות/הארות תמיד מתקבלות בברכה וניתן להעביר אותן במייל או במסר כאן (יכול להיות שבגרסה הבאה של האתר בעוד 20-30 שנים אני אשים מקום מסודר יותר להערות).
 
למעלה