laravel-5 - Laravel 使用 groupBy 选择计数
问题描述
我试图获取每个活动的 gift_code 表中唯一批次的计数。gift_code 表通过campaign_id 连接到campaign 表。
以下是活动表的一些示例数据。 --------------+-------------- |campaign_id | 姓名 | --------------+-------------- | 1 | 美国广播公司 | --------------+-------------- | 2 | xyz | --------------+-------------- 下面是gift_code 表的一些示例数据。 --------------+------------+---------- ----+ |gift_code_id | 活动 ID | 批次 | 唯一码 | --------------+-------------+----------+--------- ----- | 1 | 1 | 1 | zxc23 | --------------+-------------+----------+--------- ----+ | 2 | 1 | 2 | rtc26 | --------------+-------------+----------++--------- ----+ | 3 | 2 | 1 | z8723 | --------------+-------------+----------+--------- ----+ | 4 | 2 | 2 | h7c26 | --------------+-------------+----------++--------- ----+ | 5 | 2 | 2 | rrcf6 | --------------+-------------+----------++--------- ----+ | 6 | 2 | 3 | r7y28 | --------------+-------------+----------++--------- ----+ | 7 | 2 | 3 | bnc26 | --------------+-------------+----------++--------- ----+
$campaign = DB::table('campaign')
->select('campaign.*', DB::raw('count(gift_code.batch) as batch_count')->groupBy('gift_code.campaign_id')->groupBy('gift_code.batch'))
->leftjoin('gift_code', 'campaign.campaign_id', '=', 'gift_code.campaign_id')
->get();
我的预期结果是:
--------------+--------------+ |campaign_id | 名称 |batch_count| --------------+-------------+------------+ | 1 | 美国广播公司 | 2 | --------------+-------------+------------+ | 2 | xyz | 3 | --------------+-------------+------------+
解决方案
试试下面的查询
$data = \DB::table('campaign as c')
->leftJoin('gift_code as gc','c.campaign_id','=','gc.campaign_id')
->select('c.*',\DB::raw('COUNT(distinct(gc.batch)) as batch_count'))
->groupBy('c.campaign_id')
->get();
推荐阅读
- python - 在 cron 中使用子进程执行命令时出现命令未找到错误
- node.js - 无法使用带有快速服务器的 html-webpack-plugin 访问动态 html
- javascript - 在 addEventListener 中调用函数而不隐式传递事件对象
- ruby-on-rails - Rails 工作正常,但在 heroku 中不行
- c - 写入器关闭后的管道/FIFO读取尝试
- spring - Spring JPA hibernate - API 中的重复事务使其变慢
- python - P2 实例上的 GPU 比 MacBook 慢(Tensorflow)
- javascript - JavaScript Tic Tac Toe - 将值附加到存储为嵌套数组的棋盘中
- sql - 内连接查询 - oracle
- bootstrap-select - bootstrap_select 不会使用 YADCF 打开