To send aliased select columns in xPDO 2.1+, use an associative array, where the keys represent the column alias, i.e.
<?php
$c->select($modx->getSelectColumns('Banner', 'Banner'));
$c->select(array(
'clicks' => "SUM(IF(Banner.position = Clicks.posid, 1.0, 0))",
'cur_position' => "Position.name"
'perc_position' => "ROUND(SUM(IF(Banner.position = Clicks.posid, 1.0, 0))/SUM(IF(Banner.position = Clicks.posid, 1.0, 0))*100.0, 2.0)"
));
BTW and FWIW, doing a group by when selecting columns not in the group by will only work in MySQL, and does not work in MS SQL Server. It does work in SQLite, though it sorts in reverse before applying any grouping which can give you different results than MySQL with the same query.