Mysql之填充缺失月份的行
你猜
阅读:167
2025-02-15 21:57:57
评论:0
天哪,它一定很简单,但我正在努力解决这个“填写缺失数据”的问题。
我有一个表,其中包含以下列和一些插入的数据。
TABLE
year month payment
2014 3 100
2014 5 800
2014 9 200
我希望从这张表中获得包含 2014 年以来付款值的完整月份范围。
Month Payment
1 0
2 0
3 100
4 0
5 800
...
12 0
我尝试在 select 中使用 IFNULL 但失败得很厉害... stackoverflow 的搜索结果通常连接两个或多个表来处理信息。解决此问题最快最好的解决方案是什么?
请您参考如下方法:
对于缺少的月份,您可以对所有月份进行联合查询并加入您的表
SELECT
t1.`year`,
t.`month`,
coalesce(t1.payment,0) payment
FROM
(SELECT 1 AS `month`
UNION
SELECT 2 AS `month`
UNION
....
SELECT 12 AS `month`
) AS t
LEFT JOIN your_table t1 on(t.`month` = t1.`month`)
WHERE ....
Fiddle Demo
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。