如何在MySQL中为flight_log表添加累计运行总计列?
解决方案
要实现新增累计总计列的需求,你可以使用SQL的窗口函数SUM() OVER(),按FlightNumber的顺序计算累计飞行时长,修改后的查询语句如下:
SELECT FlightNumber, FlightTime, SUM(FlightTime) OVER (ORDER BY FlightNumber) AS CumulativeTotal FROM flight_log;
说明
SUM(FlightTime) OVER (ORDER BY FlightNumber):该窗口函数会按照FlightNumber的升序,逐行累计计算FlightTime的总和,从而生成CumulativeTotal列。- 示例中是按航班编号顺序累计,
ORDER BY FlightNumber保证了累计顺序与预期一致。
执行结果
| FlightNumber | FlightTime | CumulativeTotal |
|---|---|---|
| 1 | 3 | 3 |
| 2 | 5 | 8 |
| 3 | 2 | 10 |
| 4 | 4 | 14 |
内容的提问来源于stack exchange,提问作者Pilot640
相关产品推荐
相关产品推荐

