Quyết định cuối cùng
Bài học 3 trên 3 trong khóa học Bộ thử thách SQL #2 của Coddy.
Thử thách
Trung bìnhĐể xây một tòa lâu đài, người thợ xây cần có nhiều công cụ. Thật khó để biết anh ấy nên dùng công cụ nào và dùng theo thứ tự nào. Vì vậy, chúng ta sẽ trích xuất thông tin quan trọng và giúp người thợ xây tạo ra tòa lâu đài của mình.
Giờ đây, người thợ xây có một bảng sức mạnh cho biết số điểm anh ấy có để sử dụng các công cụ trong mỗi giờ. Mỗi giờ, anh ấy có thể dùng mỗi công cụ một lần và nên dùng nhiều công cụ nhất có thể. Độ khó của một công cụ là số điểm mà người thợ xây sử dụng.
Người thợ xây muốn quyết định nên xây lâu đài vào những giờ nào. Giờ phù hợp nhất là những giờ có hiệu giữa power và used lớn hơn.
Trả về hour và hiệu giữa các cột power và used, gọi cột này là space.
Xóa tất cả các hàng có giá trị space bằng không và xóa tất cả các giờ có 30 phút (13:30, 14:30)
Trả về hour, points và số điểm anh ấy đã sử dụng trong giờ đó, gọi cột này là used
Tự làm thử
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
Tất cả bài học trong Bộ thử thách SQL #2
Tự luyện tập: Playground SQL