I tried this code
$mySearch = new Search();
$mySearch->addField("SUM(".DB_TABLE_PREFIX."t_item_stats.i_num_views) as total_views");
$mySearch->addCategory('dvd'); //category
$mySearch->set_rpp(500); //results per page
$mySearch->addTable(DB_TABLE_PREFIX."t_item_stats");
$mySearch->addConditions(DB_TABLE_PREFIX."t_item_stats.fk_i_item_id = ".DB_TABLE_PREFIX."t_item.pk_i_id");
$mySearch->order("i_num_views", "DESC", DB_TABLE_PREFIX."t_item_stats");
$mySearch->addGroupBy(DB_TABLE_PREFIX."t_item_stats.fk_i_item_id");
View::newInstance()->_exportVariableToView("customItems", $mySearch->doSearch());
if( osc_count_custom_items() == 0) { ?>
<p class="empty"><?php _e('No Listings', 'sigma') ; ?></p>
But it didn't work
I think this line may need to be modified
$mySearch->addField("SUM(".DB_TABLE_PREFIX."t_item_stats.i_num_views) as total_views");
I replaced this line
$mySearch->order("i_num_views", "DESC", DB_TABLE_PREFIX."t_item_stats");
by this
$mySearch->order("total_views", "DESC");
It's sorted, but it shows less than 500 views