mysql - 通过最大列值选择每个唯一列值限制一行

标签 mysql sql laravel laravel-4

我正在尝试为每个客户选择最新的工作订单。我使用了 ORDER BYGROUP BY,但返回的结果不是最新的 WorkOrder

表结构:

WorkOrder
    id
    customer_id
    create_date
    ...

示例数据:

WorkOrder.id    WorkOrder.customer_id   WorkOrder.create_date   ...
1               1                       2012-01-01 12:00:00
2               1                       2016-06-29 12:00:00
3               2                       2015-05-05 12:00:00

期望的结果:

WorkOrder.id    WorkOrder.customer_id   WorkOrder.create_date   ...
2               1                       2016-06-29 12:00:00
3               2                       2015-05-05 12:00:00

当前代码:

$query = DB::table('WorkOrder')
    ->orderBy('WorkOrder.create_date', 'desc')
    ->groupBy('WorkOrder.customer_id');

// select * from `WorkOrder` group by `WorkOrder`.`customer_id` order by `WorkOrder`.`create_date` desc

当前结果:

WorkOrder.id    WorkOrder.customer_id   WorkOrder.create_date   ...
1               1                       2012-01-01 12:00:00
3               2                       2015-05-05 12:00:00

最佳答案

使用最大值函数

SELECT WorkOrder.id, WorkOrder.customer_id, MAX(WorkOrder.create_date) FROM `WorkOrder` GROUP BY `WorkOrder`.`customer_id` ORDER BY `WorkOrder`.`create_date` DESC

关于mysql - 通过最大列值选择每个唯一列值限制一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38106063/

相关文章:

php - 数据表全局搜索偶尔抛出 ajax 错误

mysql - MySQL 或 Postgres 中的数据透视表

mysql - 使用 mysql 按标签名称选择查看次数最多的项目

sql - 浏览子列,但丢弃一些

MySQL 条件左连接?

laravel - 本地主机拒绝使用 laravel sail (Docker) 连接

php - 无法将希伯来语发布到 mysql

php - 为用户报价创建唯一 ID

mysql - 根据行有条件地对列中的值求和

arrays - Laravel:获取数组中每个值的百分比