Laravel 获取数据库中一天的最高值

Laravel get highest value of day in database

我想从我的数据库中获取值最高的那一天。

我的数据库结构如下所示:

id | value | date
1    5       2022-02-07 10:00:00
2    9       2022-02-07 11:00:00
3    2       2022-02-07 12:00:00
4    1       2022-02-08 02:00:00
5    2       2022-02-08 09:00:00
6    5       2022-02-09 13:00:00
7    8       2022-02-09 18:00:00

我想表达的是:

[
   'value' => 16,
   'date' => 2022-02-07
]

通常我会给你一些想法,但我真的不知道该怎么做。如果有数百万个条目,我不能只提取整个查询并循环遍历它。

有人有想法吗?非常感谢!

我想我们可以使用:

SELECT SUM(value) AS sum_val, DATE(date) AS date_group
FROM mytable
GROUP BY DATE(date)
ORDER BY sum_val DESC
LIMIT 1;

也许您可能需要:

DATE(FROM_UNIXTIME(MyTimestamp))

根据 Ansev 的回答,这里是 Laravel Eloquent 版本:

DB::table('mytable')
    ->selectRaw('SUM(`value`) AS sum_val, DATE(`date`) AS date_group')
    ->groupBy('date_group')
    ->orderByDesc('sum_val')
    ->limit(1)
    ->get();