You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SQL统计每个Owner的去重错误活动数(含Laravel写法)

解决方案

正确的SQL语句

要实现按owner统计出现错误(error=1)的不同activity数量,核心是对activity字段去重后计数,使用COUNT(DISTINCT activity)即可满足需求:

SELECT `owner`, COUNT(DISTINCT `activity`) AS errors_per_activity
FROM `analytics`
WHERE `error` = 1
GROUP BY `owner`
ORDER BY errors_per_activity DESC;

语句说明

  • COUNT(DISTINCT activity):仅统计每个owner下,error=1的不重复activity数量,自动忽略同一activity的多条重复错误记录
  • WHERE error = 1:过滤出所有错误记录
  • GROUP BY owner:按owner维度分组统计

Laravel 查询构造器写法

对应Laravel的查询构造器实现如下:

$results = DB::table('analytics')
    ->select('owner', DB::raw('COUNT(DISTINCT activity) as errors_per_activity'))
    ->where('error', 1)
    ->groupBy('owner')
    ->orderBy('errors_per_activity', 'desc')
    ->get();

或者使用更简洁的selectRaw写法:

$results = DB::table('analytics')
    ->where('error', 1)
    ->groupBy('owner')
    ->selectRaw('owner, COUNT(DISTINCT activity) as errors_per_activity')
    ->orderByDesc('errors_per_activity')
    ->get();

内容的提问来源于stack exchange,提问作者Ryk Waters

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 18:05:22