如何将指定MySQL查询转换为Laravel Query Builder格式?
Laravel Query Builder 转换实现
对应你提供的MySQL查询,转换后的Laravel Query Builder代码如下:
$result = DB::table( DB::table('drivers') ->selectRaw('*, lead(start_loc, 1) over(PARTITION BY dri_id ORDER BY start_time ASC) AS next_start_ride'), 'a' ) ->select( 'dri_id', DB::raw('COUNT(1) AS total_rides'), DB::raw('SUM(CASE WHEN end_loc = next_start_ride THEN 1 ELSE 0 END) AS profit_ride') ) ->groupBy('dri_id') ->get();
代码说明:
- 内层子查询通过
DB::table('drivers')->selectRaw()实现原SQL中的窗口函数逻辑,生成包含next_start_ride字段的临时数据集 - 外层查询将子查询结果作为临时表
a,使用DB::raw()编写聚合统计逻辑,最后按dri_id分组并获取结果
内容的提问来源于stack exchange,提问作者Akash deep
相关产品推荐
相关产品推荐

