【问题标题】:Add up the grades for each semester [closed]将每个学期的成绩加起来[关闭]
【发布时间】:2020-06-17 18:11:15
【问题描述】:

想每个 tahun_akademik_id 计算一次

$jumlah = DB::table('penilaian')->where('penilaian.siswa_id', '=' ,$id)->where('kategori_id','=', '2')->sum('nilai');
 $rata = DB::table('penilaian')->where('penilaian.siswa_id', '=' ,$id)->where('kategori_id','=', '2')->avg('nilai');

Database

【问题讨论】:

    标签: php mysql sql laravel


    【解决方案1】:

    您需要GROUP BY 函数提供的->groupBy() 子句。

    $jumlah = DB::table('penilaian')->where('penilaian.siswa_id', '=' ,$id)->where('kategori_id','=', '2')->groupBy('tahun_akademik_id')->sum('nilai');
     $rata = DB::table('penilaian')->where('penilaian.siswa_id', '=' ,$id)->where('kategori_id','=', '2')->groupBy('tahun_akademik_id')->avg('nilai');
    

    【讨论】:

      【解决方案2】:

      你也可以使用groupBy

      根据 Laravel 文档:

      groupBy 方法可用于对查询结果进行分组。

         $jumlah = DB::table('penilaian')
                      ->where('penilaian.siswa_id', '=' ,$id)
                      ->where('kategori_id','=', '2')
                      ->groupBy("tahun_akademik_id") //add this
                      ->sum('nilai');
      
       $rata = DB::table('penilaian')
                  ->where('penilaian.siswa_id', '=' ,$id)
                  ->where('kategori_id','=', '2')
                  ->groupBy("tahun_akademik_id") //add this
                  ->avg('nilai');
      

      Laravel -> Query Builder -> Group By

      【讨论】:

      • @MarfinoHamzah 不要忘记接受并支持答案。如果有效
      猜你喜欢
      • 1970-01-01
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      • 2016-01-02
      • 1970-01-01
      相关资源
      最近更新 更多