Menu
CoddyTech

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.

challenge icon

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

1Thử thách

Kiểm kê kho đồ trong lâu đàiCông cụ cần dùngBài học dự ánQuyết định cuối cùngBài học dự án

Tự luyện tập: Playground SQL