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();
我想从我的数据库中获取值最高的那一天。
我的数据库结构如下所示:
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();