Все ваши LIKE
условия синтаксически неверны.У вас не может быть:
text like '%perfect%' or '%amazing%'....
правильный синтаксис:
text like '%perfect%' or text like '%amazing%' ....
Затем вы должны суммировать непосредственно по вычисленному столбцу CASE
и включить is_open
в группировкустолбцы:
select name, is_open,
SUM(CASE
WHEN text like '%perfect%' or text like '%amazing%' or text like '%happy%' or text like '%delicious%' or text like '%fabulous%' or text like '%fantastic%' or text like '%kind%' THEN 1
WHEN text like '%hate%' or text like '%horrible%' or text like '%bad%' or text like '%angry%' or text like '%fantastic%' or text like '%expensive%' or text like '%disgusting%' THEN -1
END) as sumrating
from review as r left join
business as b
on b.id = r.business_id
where is_open is not Null and sentiment_rating is not Null
group by name, is_open
order by name ASC