【发布时间】:2020-09-12 05:37:22
【问题描述】:
我尝试使用 Laravel 5.4 在 MySql db 中获取列 value 的每个月的最后一条记录和列 volume 的 SUM 值,我的数据库结构如下:
id | volume | value | date
---+--------+-------+-----------
1 | 5 | 2 | 2020-01-01
2 | 1 | 3 | 2020-01-22
3 | 1 | 3 | 2020-02-02
4 | 3 | 1 | 2020-02-03
5 | 2 | 4 | 2020-09-03
所以我需要的是 输出:
SUM(volume) | value | date
------------+-------+------------
6 | 3 | 2020-01-22
4 | 1 | 2020-02-03
2 | 4 | 2020-09-03
我做了什么:
$data = DomesticMarket::select(DB::raw('SUM(volume) AS "volume", CONCAT(YEAR(`date`), "-", MONTH(`date`)) AS mydate, value AS "value", YEAR(`date`) AS gy, MONTH(`date`) AS gm'))
->whereBetween('date', [$start, $end])
->where('active', '1')
->groupBy('gy')
->groupBy('gm')
->groupBy('mydate')
->groupBy('value')
->orderBy('gy')
->orderBy('gm')
->get();
请给我最好的方法来检索这样的结果。提前谢谢..
【问题讨论】: