首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用Laravel对表进行分组和平均查询

利用Laravel对表进行分组和平均查询
EN

Stack Overflow用户
提问于 2018-05-01 12:59:35
回答 1查看 48关注 0票数 0

我有一张叫assessment_data的桌子:

它收集特定学科的一系列学生的给定房间/评估id/主题/单元/结果的assessed_level。

这是我的Laravel查询:

代码语言:javascript
复制
$assessment_tally_levels = DB::table('assessment_data')
    ->join('subjects', 'assessment_data.subject_id', '=', 'subjects.id')
    ->select('subjects.short_name as Subject', 'assessment_data.assessed_level as Level', DB::raw('count(*) as Students'))
    ->where('assessment_data.user_id', Auth::id()) 
    ->where('assessment_data.room_id', $room_id)
    ->whereBetween('assessment_data.created_at', [$current_term->term_start." 00:00:01", $current_term->term_end." 23:59:59"])
    ->orderByRaw('assessment_data.assessed_level ASC')
    ->groupBy('assessment_data.subject_id')
    ->groupBy('assessment_data.assessed_level')
    ->get()
    ->toJson();

作为JSON输出,我得到的是:

{“科目”:“科学”、“层次”:1、“学生”:16}、{“学科”:“物理教育”、“层次”:1、“学生”:1}、{“数学”、“层次”:1、“学生”:1}、{“学科”:“ELA”、“水平”:1、“学生”:2}、{“学科”:“艺术”:“艺术”、“层次”:2、“学生”:1},{“学科”:“科学”:2,“学生”:23},{“学科”:“CTF”,“层次”:2,“学生”:1},{“学科”:“数学”,“层次”:2,“学生”:3},{“学科”:“ELA”,“水平”:2,“学生”:3},{“学科”:“物理教育”,“层次”:2,“学生”:3},{“学科”:“物理教育”:3,“学生”:3},{“学科”:“艺术”,“层次”:3,“学生”:1},{“学科”:“科学”,“层次”:3,“学生”:40},{“学科”:“健康”,“水平”:3,“学生”:4},{“学科”:“CTF”,“层次”:3,“学生”:4},{“学科”:“数学”、“层次”:3、“学生”:4}、{“学科”:“ELA”、“层次”:3、“学生”:4}、{“物理教育”、“层次”:4、“学生”:4}、{“学科”:“科学”、“层次”:4、“学生”:41}、{“学科”:“艺术”、“艺术”:4、“学生”:4},{“学科”:“健康”、“层次”:4、“学生”:2}、{“学科”:“CTF”、“层次”:4、“学生”:1}、{“学科”:“数学”、“层次”:4、“学生”:4}、{“学科”:“ELA”、“层次”:4、“学生”:3}

问题是,没有一个班级有40名学生(如上面的“科学3级”所示)。

下面是上面示例中的完整数据集的链接(不确定如何与您共享这些数据):https://docs.google.com/spreadsheets/d/1swc9AVLp0ZVDJw3UntgpSDQTSB2MaSunVul7zR0kNf8/edit?usp=sharing

我需要将学生按他们的student_id组合在一起,并将所有学生的assessed_levels平均在一起,以便为学生获得一个单一的统计数字。

我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-01 21:28:23

目前,您正在计算评估的数量。

你必须清点学生的人数:

代码语言:javascript
复制
DB::raw('count(distinct student_id) as Students')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50116925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档