gpt4 book ai didi

mysql - 获取每个月最常见/最频繁的值

转载 作者:行者123 更新时间:2023-11-29 20:27:25 25 4
gpt4 key购买 nike

我有一个如下所示的表格:

 id | age |       date
----|-----|--------------------
1 | 18 | 2016-07-1 00:00:00
2 | 20 | 2016-07-1 00:00:00
3 | 20 | 2016-07-1 00:00:00
4 | 22 | 2016-08-1 00:00:00
5 | 22 | 2016-08-1 00:00:00
6 | 30 | 2016-08-1 00:00:00
7 | 25 | 2016-09-1 00:00:00

我需要获得每个月 + 年最常见的年龄。

到目前为止我有这个查询:

$ages = User::selectRaw('age, MONTH(date) as month, YEAR(date) as year, count(*) as count')
->groupBy(['age', 'month', 'year'])
->orderBy('year', 'asc')
->orderBy('month', 'asc')
->get();

这仅获取每月+每年每个年龄的计数。我需要类似这样的东西:

[
{
"age": 20,
"month": 7,
"year": 2016,
},
{
"age": 22,
"month": 8,
"year": 2016,
},
{
"age": 25,
"month": 9,
"year": 2016,
}
]

即2016 年 7 月(月 == 7)有两个 20 岁和一个 18 岁,因此 20 岁是最常见的年龄。对于 2016 年 8 月,最常见的是 22,依此类推...

对此有什么好的查询吗?谢谢。

最佳答案

试试这个

$ages = User::selectRaw('age, MONTH(date) as month, YEAR(date) as year, count(*) as count')
->groupBy(['age', 'month', 'year'])
->orderBy('year', 'asc')
->orderBy('month', 'asc')
->havingRaw('count = MAX(count)')
->get();

关于mysql - 获取每个月最常见/最频繁的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39222858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com