Итак, у вас есть две таблицы
create table tree ( tree_id int unsigned primary key,...);
и
create table apple ( apple_id int unsigned primary key, tree_id int unsigned, created_at timestamp default current_timestamp,...);
Так может тогда просто построить индекс по яблокам
sql_query = select apple_id,tree_id,unix_timestamp(created_at) as created_at from apple
затем запустите группу по запросам
$cl->setGroupBy('tree_id',SPH_GROUPBY_ATTR,'@count DESC');
Виртуальный атрибут @count даст вам количество яблок на этом дереве.
для установки фильтра
$cl->setFilterRange('created_at',strtotime('2010-01-01'),strtotime('2011-01-01'));
Кроме того, поскольку вы не используете его, вы можете присвоить ему рейтинг
$cl->setRankingMode(SPH_RANK_NONE);
Для ясности просто используйте пустой запрос
$res = $cl->Query('',$index);