I would try something like this (it is for Delta theme):
function mb_sort_by_premium() {
Search::newInstance()->addJoinTable( DB_TABLE_PREFIX.'t_item_delta.fk_i_item_id', DB_TABLE_PREFIX.'t_item_delta', DB_TABLE_PREFIX.'t_item.pk_i_id = '.DB_TABLE_PREFIX.'t_item_delta.fk_i_item_id', 'LEFT OUTER' );
Search::newInstance()->order(sprintf("coalesce(%st_item_delta.i_sold, 0) ASC, dt_pub_date DESC", DB_TABLE_PREFIX), '');
}
if(Params::getParam('sOrder') == '') {
osc_add_hook('search_conditions', 'mb_sort_by_premium');
}