create table lifts
(
id int
, capacity_kg int
);
insert into lifts values (1, 300);
insert into lifts values (2, 350);
create table lift_passengers
(
passenger_name varchar(50)
, weight_kg int
, lift_id int
);
insert into lift_passengers values ('Rahul', 85, 1);
insert into lift_passengers values ('Adarsh', 73, 1);
insert into lift_passengers values ('Riti', 95, 1);
insert into lift_passengers values ('Dheeraj', 80, 1);
insert into lift_passengers values ('Vimal', 83, 2);
insert into lift_passengers values ('Neha', 77, 2);
insert into lift_passengers values ('Priti', 73, 2);
insert into lift_passengers values ('Himanshi', 85, 2);
WITH lift_cap AS (
SELECT
lp.*,
SUM(weight_kg) OVER (PARTITION BY lp.lift_id ORDER BY weight_kg ASC) AS cum_wg,
l.capacity_kg
FROM lifts l
JOIN lift_passengers lp ON l.id = lp.lift_id
),
filtered_lift_cap AS (
SELECT *
FROM lift_cap
WHERE cum_wg <= capacity_kg
)
SELECT
lift_id,
STRING_AGG(passenger_name, ',' ORDER BY weight_kg) AS passengers
FROM filtered_lift_cap
GROUP BY lift_id;
To embed this project on your website, copy the following code and paste it into your website's HTML: