Нужна помощь с Hibernate / SQL Query Logic - PullRequest
2 голосов
/ 23 марта 2010

У меня следующий запрос:

SELECT DISTINCT w.name, count(*) FROM widgets AS w
JOIN w.entity AS e
JOIN e.article AS a
JOIN a.document AS d
WHERE d.id IN (<document ids>)
GROUP BY w.name

Проблема в том, что count(*) возвращает количество ассоциаций виджета-сущности. Вместо этого я ищу количество уникальных имен виджетов для каждой статьи или документа.

Вот пример:

Допустим, у меня есть две сущности: cat и dog.
У меня также есть два разных виджета с одинаковым именем foo.
Каждый из виджетов foo связан с одним из объектов (один с cat, другой с dog).
Обе cat и dog связаны со статьей animals.
например, число, возвращаемое этим запросом, равно только 1 (потому что имя виджета foo встречается в статье только один раз animals) вместо 2.

Я попытался поместить другие вещи в пункт count, например, count(d.id), но безуспешно.

1 Ответ

1 голос
/ 23 марта 2010

Ага, я разобрался!

Поскольку я использую MSSQL в бэкэнде, я могу сделать это: count(DISTINCT a.id)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...