Потому что вы хотите исключить результат подсчета empresa
, а не empresa
,
. Используйте havingRaw()
, например:
$data = DB::table('incidencias')
->select(DB::raw('empresa as empresa'), DB::raw('count(*) as number'))
->where('empresa', '!=', '')
->groupBy('empresa')
->havingRaw('number NOT IN (1,2)')
->orderBy('number', 'desc')
->get();