mysql 先有一张 gx_cyxqtb_day日发电量表 rq为日期 drzfdl为日发电量 年所需发电总量为1000 请编写sql统计 每月增长式的进度百分比
时间: 2024-03-06 11:49:59 浏览: 53
好的,这是您的问题:
```mysql
SELECT
`t1`.`month`,
`t1`.`month_production`,
SUM(`t2`.`month_production`) AS `cumulative_production`,
SUM(`t2`.`month_production`) / 1000 * 100 AS `cumulative_completion_rate`
FROM
(
SELECT
MONTH(`rq`) AS `month`,
SUM(`drzfdl`) AS `month_production`
FROM
`gx_cyxqtb_day`
WHERE
YEAR(`rq`) = YEAR(CURDATE())
GROUP BY
`month`
) AS `t1`
JOIN (
SELECT
MONTH(`rq`) AS `month`,
SUM(`drzfdl`) AS `month_production`
FROM
`gx_cyxqtb_day`
WHERE
YEAR(`rq`) = YEAR(CURDATE()) AND
MONTH(`rq`) < MONTH(CURDATE())
GROUP BY
`month`
) AS `t2` ON `t1`.`month` > `t2`.`month`
GROUP BY
`t1`.`month`
```
这条 SQL 语句会查询当前年份的每个月的发电量,并按照每个月的顺序,依次计算月份累计完成进度百分比。其中,第一个子查询用于查询每个月的发电量,第二个子查询用于查询当前月份之前的月份的发电量。最后,使用 JOIN 子句将这两个子查询连接起来,计算出每个月份的月度发电量、月度累计发电量、月度累计完成进度百分比。
阅读全文