החלטה סופית
שיעור 3 מתוך 3 בקורס חבילת אתגרי SQL #2 של Coddy.
אתגר
בינוניכדי לבנות טירה, הבנאי צריך כלים רבים. קשה להבין באילו כלים עליו להשתמש ובאיזה סדר. לשם כך נחלץ את המידע החשוב ונעזור לבנאי לבנות את הטירה שלו.
כעת יש לבנאי טבלת חוזק שמציינת את מספר הנקודות שיש לו כדי להתמודד עם הכלים בכל שעה. בכל שעה הוא יכול להשתמש בכל כלי פעם אחת, ועליו להשתמש בכמה שיותר כלים בכל שעה. רמת הקושי של כלי היא מספר הנקודות שהבנאי משקיע בו.
הבנאי רוצה להחליט באילו שעות לבנות את הטירה. השעות הטובות ביותר הן אלה שבהן ההפרש בין power ל-used גדול יותר.
החזר את hour ואת ההפרש בין העמודות power ו-used — קרא לעמודה הזו space.
הסר את כל השורות שבהן space שווה לאפס והסר את כל השעות שמכילות 30 דקות (13:30, 14:30)
החזר את hour, את points ואת הנקודות שבהן הוא השתמש באותה שעה — קרא לעמודה הזו used
נסו בעצמכם
WITH cumulating AS (
SELECT SUM(difficulty) OVER (ORDER BY row_num ASC) as tot_until_now
FROM (
SELECT name, difficulty, ROW_NUMBER() OVER (order by difficulty asc) as row_num
FROM tools
)
order by difficulty
)
SELECT hour, power, (
SELECT tot_until_now
FROM cumulating
WHERE tot_until_now <= power
ORDER BY tot_until_now DESC
LIMIT 1
) as used
FROM strength
כל השיעורים ביחידה חבילת אתגרי SQL #2
תרגלו בעצמכם: SQL אונליין