image.png
    image.png


    还是临时变量

    1. with t as(
    2. SELECT B.*,count(passenger_id) people
    3. ,sum(capacity) over(order by arrival_time rows unbounded preceding) seats
    4. from Buses B LEFT JOIN Passengers P
    5. ON B.arrival_time >= P.arrival_time
    6. group by bus_id)
    7. SELECT bus_id, CONVERT(temp, UNSIGNED INTEGER) passengers_cnt from
    8. (SELECT bus_id,@q:=@q+@p,
    9. @p:=if(capacity >= people-@q,people-@q,capacity) temp
    10. from t,(SELECT @p:=0,@q:=0) init) T
    11. order by bus_id