В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Вы могли использовать пункт НАЛИЧИЯ, который может видеть псевдонимы, например,
HAVING avg_rating>5
, но в, где пункт необходимо будет повторить выражение, например,
WHERE (sum(reviews.rev_rating)/count(reviews.rev_id))>5
, НО! Не все выражения будут позволены - использование агрегирующейся функции как СУММА не будет работать, в этом случае необходимо будет использовать пункт НАЛИЧИЯ.
От MySQL Manual :
Это не допустимо для обращения к псевдониму столбца в операторе Where, потому что значение столбца еще не могло бы быть определено, когда оператор Where выполняется. См. Раздел B.1.5.4, “Problems со столбцом Aliases” .
Dunno, если это работает в mysql, но использующий sqlserver Вы, может также просто обернуть его как:
select * from (
-- your original query
select .. sum(reviews.rev_rating)/count(reviews.rev_id) as avg_rating
from ...) Foo
where Foo.avg_rating ...