如何从mysql中选择一年内按月分组、一个月求和的值?
这是我的数据库表,名为“payment”,它的结构和数据 现在,当用户从日历中选择年份时,我想在我的php网页中显示如下所述的表格数据(我使用了Zebra日期选择器)。斑马日期选择器给出年份 在这个场景中,用户选择2020年,它应该显示如下值如何从mysql中选择一年内按月分组、一个月求和的值?,mysql,Mysql,这是我的数据库表,名为“payment”,它的结构和数据 现在,当用户从日历中选择年份时,我想在我的php网页中显示如下所述的表格数据(我使用了Zebra日期选择器)。斑马日期选择器给出年份 在这个场景中,用户选择2020年,它应该显示如下值 received_amount | updated_at ---------------------------- 4000 | 2020-11-02 2000 | 2020-11-03 1000
received_amount | updated_at
----------------------------
4000 | 2020-11-02
2000 | 2020-11-03
1000 | 2020-12-02
1000 | 2020-12-04
3000 | 2021-01-02
2000 | 2020-01-02
您可以像这样在查询中使用group by
Year | Month | Monthly Total
----------------------------
2020 | November| 6000
2020 | December| 2000
然后像这样选择
GROUP BY EXTRACT(YEAR FROM updated_at), EXTRACT(MONTH FROM updated_at)
你可以做:
SELECT EXTRACT(YEAR FROM updated_at) as Year,
EXTRACT(MONTH FROM updated_at) as Month,
SUM(received_amount) as Monthly_Total
结果:
select year, month, monthly_total
from (
select
extract(year from updated_at) as year,
extract(month from updated_at) as m,
monthname(updated_at) as month,
sum(receive_amount) as monthly_total
from t
where extract(year from updated_at) = 2020
group by year, month, m
) x
order by year, m
参见运行示例。2020年1月怎么样?我可以在数据中看到。如果用户选择了年份,那么为什么您的预期结果行中有超过1年的数据?@TheImpler Ahha。错过了。Thanks@forpas只应显示所选年份。谢谢,你好。查询在我的数据库表中按预期工作。但是如何将结果放入php页面中的表中呢?我试过了,但有错误。请帮助我。你的代码也帮助了我。非常感谢你。
year month monthly_total
----- --------- -------------
2020 January 2000
2020 November 6000
2020 December 2000