问题描述
我正在尝试通过以下查询来获取硬币的总和数据分组,我正在使用 postgres。
$query
->select([
'month' => "DATE_PART('month',date)",'total_sum_coin' => $query->func()->sum('SummaryCoins.get_count')
])
->where([
'SummaryCoins.date >='=> '2020-12-01','SummaryCoins.date <='=> '2021-05-01',])
->group([
'month'
])
->order([
'month' => 'ASC'
])
;
我得到的输出
3 22
4 77
5 34
我的愿望输出是
12 0
2 0
3 22
4 77
5 34
当任何月份都不存在数据时,如何获得总和 0?
更新
我可以编写此查询来获取我想要的数据,但无法在 cakePHP 查询构建器中实现。
SELECT DATE_PART('month',x) AS month,COALESCE(TOTAL,0) AS total
FROM generate_series(
date_trunc('month',date'2020-10-01'),date_trunc('month',date'2021-4-01'),interval'1 month') AS x(x)
LEFT JOIN LAteraL (
SELECT SUM(GET_COUNT) AS TOTAL
FROM SUMMARY_COINS
WHERE date_trunc('month',date) = x
AND user_id = 1
) AS s ON TRUE
ORDER BY x;
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)