Keputusan Akhir
Pelajaran 3 dari 3 dalam kursus Paket Tantangan SQL #2 di Coddy.
Tantangan
SedangUntuk membangun sebuah kastel, sang pembangun membutuhkan banyak alat. Sulit memahami alat mana yang harus ia gunakan dan dalam urutan apa alat-alat itu harus digunakan. Untuk itu, kita akan mengambil informasi penting dan membantu sang pembangun membuat kastelnya.
Sekarang sang pembangun memiliki tabel kekuatan yang menunjukkan jumlah poin yang ia miliki untuk menggunakan alat setiap jam. Setiap jam ia dapat menggunakan setiap alat satu kali, dan ia harus menggunakan alat sebanyak mungkin setiap jam. Tingkat kesulitan sebuah alat adalah jumlah poin yang digunakan sang pembangun.
Sang pembangun ingin menentukan jam untuk membangun kastel. Jam terbaik adalah jam dengan selisih lebih besar antara power dan used.
Kembalikan hour dan selisih antara kolom power dan used, beri nama kolom ini space.
Hapus semua baris dengan space yang nilainya sama dengan nol dan hapus semua jam yang mencakup menit ke-30 (13:30, 14:30)
Kembalikan hour, points, dan poin yang ia gunakan pada jam tersebut, beri nama kolom ini used
Coba sendiri
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
Semua pelajaran di Paket Tantangan SQL #2
Latihan sendiri: Playground SQL