Почему ORACLE SQL не считает агрегатные функции?
По стандарту SQL при группировке все выбираемые поля должны быть агрегатными функциям или полями, по которым производится группировка.
У вас YEAR(LESSONDATETIME) не подходит ни под то, ни под то условие.
Всем спасибо разобрался
select
   to_char(LESSONDATETIME,'MM'),to_char(LESSONDATETIME,'YYYY'),count(LESSONDATETIME)
FROM  LESSON
WHERE to_char(LESSONDATETIME,'YYYY')=2017
having
   count(LESSONDATETIME) > 0
group by
   to_char(LESSONDATETIME,'MM'),to_char(LESSONDATETIME,'YYYY')
order by
   to_char(LESSONDATETIME,'MM') asc;