php - 我想从我的表中获取结果,按列排序,其中大部分时间重复值在顶部。我正在使用 laravel
问题描述
我想从我的表中获取结果,按列排序,其中大部分时间重复值在顶部。我正在使用 laravel
数据存储为
- 电子邮件城市
- abc@anc.com 德里
- abc@njd.com 古尔冈
- bhy@jfl.com 诺伊达
- jsd@juk.com 德里
- hfk@jfj.com 古尔冈
- jfs@jfk.com 德里
预期结果
- 电子邮件城市
- abc@anc.com 德里
- jsd@juk.com 德里
- jfs@jfk.com 德里
- abc@njd.com 古尔冈
- hfk@jfj.com 古尔冈
- bhy@jfl.com 诺伊达
我正在使用的代码是
$list = SubscriberList::select('subscriber_lists.*',DB::raw('COUNT(subscriber_lists.location) as locationCount'))
->where('status', config('constants.IS_NOT_ACTIVE'))
->orderBy('locationCount','DESC')
->paginate(config('constants.PAGE_LIMIT'));
解决方案
这肯定会解决您的问题:
$result = DB::table('subscriber_lists')
->select('email', 'city', DB::raw('count(*) as user_count'))
->orderBy('city')
->groupBy('email')
->get();
return $result->sortByDesc('user_count')->values();
您也可以使用 Model 类进行这样的编码:
$result = SubscriberList::select('email', 'city', DB::raw('count(*) as user_count'))
->orderBy('city')
->groupBy('email')
->get();
return $result->sortByDesc('user_count')->values();
推荐阅读
- macos - 无法在 macOS 上使用带有 Ubuntu 云映像的 qemu nocloud cloud-init 登录到 vm
- youtube - youtube-dl python 仅下载 MP4 音频
- python - Python Twitter Bot for Lyrics - 使用 Lyricsgenius 包收集的歌词
- r - 希腊字母表在数据框中转换为 unicode?任何支持使用不同字母的软件包?
- rcpp - 如何在Rstudio中调用Rcpp向量的对数函数
- ios - 更新本机反应后反应本机iOS构建错误
- java - 如何遍历findby休眠两列中的数据并打印出所有值
- python - 两个二维数组的 Numpy element-wise isin
- reactjs - Material-UI 断点在 React.js 中不起作用
- c++ - 当我运行程序时,输出是“inf”