Ostateczna decyzja
Lekcja 3 z 3 w kursie Pakiet wyzwań SQL nr 2 w Coddy.
Wyzwanie
ŚredniAby zbudować zamek, budowniczy potrzebuje wielu narzędzi. Trudno zrozumieć, których narzędzi powinien użyć i w jakiej kolejności. Dlatego wyodrębnimy ważne informacje i pomożemy budowniczemu zbudować jego zamek.
Teraz budowniczy ma tabelę siły, która wskazuje liczbę punktów, jaką dysponuje, aby obsługiwać narzędzia w każdej godzinie. W każdej godzinie może użyć każdego narzędzia jeden raz i powinien użyć jak największej liczby narzędzi. Trudność narzędzia to liczba punktów, które budowniczy wykorzystuje.
Budowniczy chce zdecydować, w których godzinach budować zamek. Najlepsze są te godziny, w których różnica między power a used jest większa.
Zwróć hour oraz różnicę między kolumnami power i used — nazwij tę kolumnę space.
Usuń wszystkie wiersze, w których wartość space jest równa zero, oraz wszystkie godziny zawierające 30 minut (13:30, 14:30)
Zwróć hour, points oraz liczbę punktów wykorzystanych w tej godzinie — nazwij tę kolumnę used
Spróbuj swoich sił
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
Wszystkie lekcje w sekcji Pakiet wyzwań SQL nr 2
Poćwicz samodzielnie: Edytor online SQL