NHibernate QueryOver: Get a row count with group by in a subquery

后端 未结 1 1065
自闭症患者
自闭症患者 2021-02-19 19:47

I\'m trying to get a count from a query with a group by and just can\'t figure out how to translate the SQL I want into NHibernate\'s QueryOver syntax.

This is the SQL:<

相关标签:
1条回答
  • 2021-02-19 20:02

    I'm not sure why you need such a complex query. If you only want the count of distinct emails meeting certain criteria I think you could use something like this in SQL:

    select count(distinct email)
    from Entry
    where (conditions...)
    

    And translating this to NHibernate's QueryOver API would look something like this:

    int count = session.QueryOver<ContestEntry>()
                .Select(Projections.CountDistinct<ContestEntry>(x => x.Email))
                .FutureValue<int>()
                .Value;//query is not executed until here
    

    Unless I'm missing something, I think this will get the result you're after. There is also a "Distinct" projection and a .ToRowCountQuery() method that you might find interesting.

    0 讨论(0)
提交回复
热议问题