Decisione finale
Lezione 3 di 3 del corso Pacchetto di sfide SQL n. 2 di Coddy.
Sfida
MedioPer costruire un castello, il costruttore ha bisogno di molti strumenti. È difficile capire quali strumenti dovrebbe usare e in quale ordine. Per questo, estrarremo le informazioni importanti e aiuteremo il costruttore a creare il suo castello.
Ora il costruttore ha una tabella della forza che indica il numero di punti che ha a disposizione ogni ora per usare gli strumenti. Ogni ora può usare ciascuno strumento una volta e dovrebbe usare quanti più strumenti possibile. La difficoltà di uno strumento è il numero di punti che il costruttore sta usando.
Il costruttore vuole decidere in quali ore costruire il castello. Le ore migliori sono quelle con una differenza maggiore tra power e used.
Restituisci hour e la differenza tra le colonne power e used: chiama questa colonna space.
Rimuovi tutte le righe in cui space è uguale a zero e rimuovi tutte le ore che contengono 30 minuti (13:30, 14:30)
Restituisci hour, points e i punti che ha usato in quell'ora: chiama questa colonna used
Provalo tu
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
Tutte le lezioni di Pacchetto di sfide SQL n. 2
Esercitati da solo: Playground SQL