SELECT COUNT(*) ...
, то есть $qb->count()
При выборке (или после) нужно сгруппировать subject по service, так чтобы распределение subject было примерно равным.
Нужно из:
...
'subject_id' => 2,
'service_ids' => [1, 2]
...
Получить:
...
'service_id' => 1,
'subject_ids' => [1]
...
счет уходит на email, как сделать, чтобы счет сохранялся на сервере
перенос файлов в базу и уже аналогичная работа с базой
cat file1.csv file2.csv | sort -u
cat file1.csv file2.csv | sort -k1,1 -u
Range: bytes=50-
, например, через curl. Ну и сервер, очевидно, тоже должен поддерживать его.