שאלה מראיון SQL

pitoach

New member
לחלק ראשון של השאלה שלו נכון אבל שים לב:

הוא שאל "האם השאילתא תעבוד במקרה שחסרים כמה מספרים?"
ולתת תשובה לא אומר שהשאילתה שלך לא גמישה מספיק ולכן לא טובה

כלל בחיים של מפתח טוב זה לא לחזור על דברים או במושג המקצועי code reuse
לכן: הפתרון שלך נכון לגבי מספר חסר בודד כמו שרשמת אבל אז התשובה לשאלה "האם השאילתא תעבוד במקרה שחסרים כמה מספרים?" היא לא

בעוד אם רושמים פתרון שהוא גם לא פחות יעיל כמו שרשמתי עם טבלת מספרים אז הוא יעבוד בכל מקרה והתשובה תהיה כן לשאלה "האם השאילתא תעבוד במקרה שחסרים כמה מספרים?"

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

haimfishner

New member
פתרון

לגבי השאלה הראשונה כאשר יש לך בטבלה מספרים בין 1-100 ואתה יודע שחסר לך בדיוק מספר אחד אז יש לי פתרון בסטייל, הולך ככה:
select 5050 - SUM(number)
from YourTable

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

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

בברכה,
חיים פישנר
 
למעלה