代码之家  ›  专栏  ›  技术社区  ›  Leon N

口若悬河

  •  0
  • Leon N  · 技术社区  · 6 年前

    我的查询涉及1个表:“entries”。工作正常的SQL查询是:

    select `type`, YEAR(`date`) AS import_year, count(*) as aantal from
    `entries`  where `merk` = 'FORD' and `date` <> `other_date`
    GROUP BY `type`, YEAR(`date`)
    

    • 聚焦1998 13
    • 猎户座2007 12
    • 猎户座2009 7

    但现在的问题是如何用Laravel/雄辩的语言来安排,最好只有一个陈述。

        $registrations = entry::where('merk', 'FORD')
                ->whereRaw('date <> other_date')
                ->selectRaw('type, YEAR(date) AS import_year')
                ->get()
                ->groupBy('type_final', 'import_year')
    

    但这会给我提供所有符合要求的条目,我只想有计数项。我试了很多,但不能用简单的方法得到最终的解决方案。有什么能帮我吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Jonas Staudenmeir    6 年前

    呼叫 get() groupBy() :

    $registrations = entry::where('merk', 'FORD')
            ->whereRaw('date <> other_date')
            ->selectRaw('type, YEAR(date) AS import_year, count(*) AS aantal')
            ->groupBy('type', 'import_year')
            ->get()
    
        2
  •  0
  •   Byakkun    6 年前