我无法提出可在查询中执行总和(明显点击次数)的条件。我通过简单的SQL查询获得结果,但无法制定标准来执行相同的操作。
目前我可以做到
.add(Projections.property("clicks").as("clicks"))
一个简单的SQL查询就像这样
从tbl_click_count中选择总和(不同点击次数)作为点击,来源作为来源,总和(jobs_sent)作为jobsSent,其中date =' 2016-09-04'和domain =' somename'和whitelabel =' somename'按来源分组,whitelabel,id desc的域名顺序
我的标准就像
Criteria criteria = getSessionFactory().createCriteria(FeedClickCountModel.class)
.add(Restrictions.ge("date", startDate))
.add(Restrictions.le("date", uptoDate))
.setProjection(Projections.projectionList()
.add(Projections.sum("jobsSent").as("jobsSent"))
.add(Projections.groupProperty("source").as("source"))
.add(Projections.property("whiteLabel").as("whiteLabel"))
.add(Projections.property("domain").as("domain"))
.add(Projections.property("totalJobs").as("totalJobs"))
.add(Projections.property("clicks").as("clicks"))
// ^This i want is sum(distinct clicks)
.add(Projections.property("date").as("date"))
.add(Projections.property("id").as("id")))
.setResultTransformer(Transformers.aliasToBean(FeedClickCountModel.class));
如果没有sqlprojection,有没有办法做到这一点。
答案 0 :(得分:0)
.add(Projections.distinct(Projections.property("clicks")));
喜欢这个吗?
答案 1 :(得分:0)
Projections.sum(Projections.countDistinct(propertyName));
试试这个。
如果没有投影,您将需要使用hibernate SQL或本机SQL查询。