mysql 先有一张 gx_cyxqtb_day日发电量表 rp为日期 drzfdl为日发电量 年所需发电总量为100 请编写sql统计 每月完成的累计进度百分比 和累计总量
时间: 2024-03-06 11:49:40 浏览: 62
MySQL_Exploit.rar_0day_C 0day_Exploit_mysql c
好的,针对您的问题,我可以给出以下 SQL 语句:
```sql
SELECT
DATE_FORMAT(rp, '%Y-%m') AS month,
ROUND(SUM(drzfdl) / 100 * 100, 2) AS cumulative_progress_percentage,
ROUND(SUM(drzfdl), 2) AS cumulative_amount
FROM
gx_cyxqtb_day
WHERE
YEAR(rp) = YEAR(CURDATE())
GROUP BY
DATE_FORMAT(rp, '%Y-%m')
```
该语句会统计每个月的累计完成进度百分比和累计总量,其中 `gx_cyxqtb_day` 表为日发电量表,包含日期 `rp` 和日发电量 `drzfdl` 两个字段。年所需发电总量为100。
解释一下上述 SQL 语句中的各个部分:
- `DATE_FORMAT(rp, '%Y-%m') AS month`:将日期 `rp` 格式化为年月格式,以便按月分组统计。
- `ROUND(SUM(drzfdl) / 100 * 100, 2) AS cumulative_progress_percentage`:计算当前月的累计完成进度百分比,公式为当前月累计发电量除以年所需发电总量,再乘以100。使用 `ROUND` 函数将结果保留两位小数。
- `ROUND(SUM(drzfdl), 2) AS cumulative_amount`:计算当前月的累计发电量,并使用 `ROUND` 函数将结果保留两位小数。
- `WHERE YEAR(rp) = YEAR(CURDATE())`:筛选出当前年份的数据。
- `GROUP BY DATE_FORMAT(rp, '%Y-%m')`:按照年月分组统计。
希望以上 SQL 语句对您有所帮助!
阅读全文