Menu
Coddy logo textTech

Decisione finale

Lezione 3 di 3 del corso Pacchetto di sfide SQL n. 2 di Coddy.

challenge icon

Sfida

Medio

Per 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