Queue
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| person_id | int |
| person_name | varchar |
| weight | int |
| turn | int |
+-------------+---------+
person_id 열에는 고유한 값이 포함됩니다.
이 테이블에는 버스를 기다리는 모든 사람들에 대한 정보가 있습니다.
person_id 및 turn 열에는 1부터 n까지의 모든 숫자가 포함되며, 여기서 n은 테이블의 행 수입니다.
turn은 사람들이 버스에 탑승할 순서를 결정하며, turn=1은 가장 먼저 탑승하는 사람을 나타내고 turn=n은 가장 마지막으로 탑승하는 사람을 나타냅니다.
weight는 사람의 체중(킬로그램)입니다.
버스 탑승을 기다리는 사람들이 줄을 서 있습니다. 하지만 버스의 무게 제한이 1000킬로그램이므로 탑승하지 못하는 사람이 있을 수 있습니다.
체중 제한을 초과하지 않고 버스에 탈 수 있는 마지막 사람의 person_name을 찾는 솔루션을 작성하세요. 테스트 케이스는 첫 번째 사람이 체중 제한을 초과하지 않도록 생성됩니다.
한 번에 한 사람만 버스에 탑승할 수 있다는 점에 유의하세요.
-- 누적값 구하기 : SUM(weight) OVER(ORDER BY turn) WITH tmp_tb AS ( SELECT person_id , person_name , SUM(weight) OVER(ORDER BY turn) AS Total_Weight FROM Queue GROUP BY person_id, person_name ) SELECT person_name FROM tmp_tb WHERE 1=1 AND Total_Weight <= 1000 ORDER BY Total_Weight DESC LIMIT 1 ;