Как суммировать логический столбец в HQL (NHibernate)? - PullRequest
1 голос
/ 19 января 2012

У меня есть столбец, представленный как целые числа в бэкэнде SQLite, но с логической интерпретацией в отображении Nhibernate.Я хочу, чтобы мой HQL-запрос получил количество «истинных» строк.В SQL он отлично работает как «SUM (BoolColumn)», но HQL превращает возвращаемое значение в логическое значение.Я не могу использовать предложение where, потому что у меня есть некоторые другие столбцы COUNT (DISTINCT) в выборке, которые включают в себя как true, так и false строки.

Ответы [ 2 ]

7 голосов
/ 19 января 2012

Поскольку NH считает, что это немного (что нельзя агрегировать), вы можете сделать что-то подобное в HQL ...

sum(case when BoolColumn = 1 then 1 else 0 end)

Вы определили пользовательское отображение от int до bool или вы предполагаете, что int будет только 1 или 0?

1 голос
/ 31 августа 2017

Это работает для меня:

sum(case when BoolColumn = true then 1 else 0 end)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...