当前位置: 首页 > 面试题库 >

通过group by和Laravel获取最新行

程鸿畅
2023-03-14
问题内容

即使有这样的多个问题,我也无法通过查询查询返回带有分组依据的最近日期的行。

我有下表。

| message_id | from | to | created_at | status
----------------------------------------------
|    1       |   1  |  2 | 2017-04-06 |   1
|    2       |   1  |  2 | 2017-04-07 |   0
|    3       |   3  |  4 | 2017-04-06 |   1
|    4       |   3  |  4 | 2017-04-07 |   0
----------------------------------------------

我正在尝试获取最近日期的行。

| message_id | from | to | created_at | status
----------------------------------------------
|    2       |   1  |  2 | 2017-04-07 |   0
|    4       |   3  |  4 | 2017-04-07 |   0

当前,此查询返回具有最近日期的行。

$messages = Message::where('to', Auth::id())
                    ->groupBy('from')
                    ->orderBy('created_at', 'DESC')
                    ->paginate(10);

问题答案:

问题在于结果集将被首先 分组 然后 排序 。您可以使用嵌套选择来获取所需的内容。

SQL查询:

SELECT t.* FROM (SELECT * FROM messages ORDER BY created_at DESC) t GROUP BY t.from

使用Laravel:

$messages = Message::select(DB::raw('t.*'))
            ->from(DB::raw('(SELECT * FROM messages ORDER BY created_at DESC) t'))
            ->groupBy('t.from')
            ->get();

您只需要添加where()子句。



 类似资料:
  • 数据库 我对数据库有点陌生,我制作了这个小数据库,但从中获取数据时遇到了问题。我试图从登录的用户那里获取所有参赛者,它工作正常,但是如果我输入

  • 不管怎样,感谢所有人的回答。

  • 我有一个这样的数据帧: 必修的: 相关链接:pandas groupby的最小和最大行 pandas groupby中两个系列的最大值和最小值 pandas groupby中的最大和最小日期 单击groupby,然后按列的值(例如,最小值、最大值)选择一行

  • 我在获取数据方面有问题。这是控制台中弹出的错误。。。 未捕获的错误:模块构建失败(来自。/node_modules/Babel-loader/lib/index.js): SynTaxError: /var/www/html/laravel/resources/js/components/Content.vue: const是一个保留字(8:4) 我在用法上做错了什么吗? 也在App.js中

  • 问题内容: 这个问题已经在这里有了答案 : 获取字典中具有最大值的键? (25个答案) 4年前关闭。 我正在尝试获取dict键,其值是所有dict值的最大值。 我发现了两种方法,都不够优雅。 有没有更好的方法? 问题答案: 使用参数可以: 演示: 该参数接受一个函数,对于可迭代的每个条目,它将找到该函数为其返回最大值的那个条目。

  • 我有一个查询,然后使用foreach循环。 我通过消除空值进行筛选,然后将其推入集合 然后将二维阵列与一维阵列进行平面化转换。 所以,我有收集格式的数据。 我的问题是如何从收集中获得最小最大值? 例如我的数据: 预期产出: 代码: 如有任何帮助,我将不胜感激