HQL - COUNT (IF ()), выдающий QuerySyntaxException при компиляции - PullRequest
0 голосов
/ 27 ноября 2018

Я пытался получить количество AdmissionForms, которое имеет статус, равный ПРИНЯТО, но не смог сделать это с этим запросом.

в репозитории,

SELECT COUNT(IF(status='ACCEPTED',1,NULL)), COUNT(IF(status='PENDING',1,NULL)) FROM  admissionforms;

Исключение, которое я получил,

org.hibernate.hql.internal.ast.QuerySyntaxException: expecting CLOSE, found '(' near line 1, column 16 [SELECT COUNT(if(status = 'ACCEPTED',1,NULL)) FROM admissionforms]

1 Ответ

0 голосов
/ 27 ноября 2018

Почему бы просто не включить вместо него предложение WHERE?

SELECT COUNT(*) AS ACCEPTED 
FROM admissionforms
WHERE status = 'ACCEPTED';

Однако то же самое можно сделать и с условным агрегированием:

SELECT SUM(CASE WHEN status = 'ACCEPTED' THEN 1 ELSE 0 END) AS ACCEPTED
FROM admissionforms;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...