Это действительно странный запрос.
Почему бы вам не поместить условие WHERE в подзапрос?
SELECT total, (select my_count from x where .. AND my_count > 0) as XXX
FROM sales
И вы получаете ошибку, поскольку вы не можете использовать результат подзапроса в качестве имени столбца.