group by-Spring JPA CriteriaQuery分组查询

问题描述

Spring JPA CriteriaQuery分组查询

Spring JPA CriteriaQuery 设置select 查询的字段丝毫没起到作用,很郁闷、网上也有很多类似的问题,都没有解决方法。有没有大神用JPA做过分组查询的?求教。。。

解决方案

CriteriaQuery q = cb.createQuery(Country.class);
Root c = q.from(Country.class);
q.select(c.get(""currency"") cb.sum(c.get(""population"")));
q.where(cb.isMember(""Europe"" c.get(""continents"")));
q.groupBy(c.get(""currency""));
g.having(cb.gt(cb.count(c) 1));

对应的sql 语句SELECT c.currency SUM(c.population)

FROM Country c
WHERE 'Europe' MEMBER OF c.continents
GROUP BY c.currency
HAVING COUNT(c) > 1

api地址:http://www.objectdb.com/java/jpa/query/jpql/group#GROUP_BY_and_HAVING_in_Criteria_Queries_

时间: 2024-09-17 03:51:33

group by-Spring JPA CriteriaQuery分组查询的相关文章

select-按字段group by分组查询count(统计)用什么保存比较好?

问题描述 按字段group by分组查询count(统计)用什么保存比较好? select user_identity, count(user_identity) as count from data_user 就是要取 user_identity这一列的不同值(并统计出现次数)结果如果用List或Listor List 保存的话在,怎么取值? 解决方案 list中放object数组,,用list.get(i)[0]就可以了,, 解决方案二: sql查询 -count,group by,havi

spring data jpa 多条件查询判读问题

问题描述 spring data jpa 多条件查询判读问题 在使用Spring Data JPA时发现的问题在实际应用中,我们通常会在页面上进行组合查询,例如用户这个对象 页面上会列出用户姓名.年龄.学历.性别.地址.电话等等的一系列查询条件 最近在学习Spring Data JPA,不知这个怎么实现这种组合条件的查询啊 只能手动判断后写SQL吗 解决方案 Spring jpa data多条件分页查询spring data jpa 分页查询 解决方案二: 不用手动写SQL的,SpringJPA

MySQL分组查询Group By实现原理详解_Mysql

由于GROUP BY 实际上也同样会进行排序操作,而且与ORDER BY 相比,GROUP BY 主要只是多了排序之后的分组操作.当然,如果在分组的时候还使用了其他的一些聚合函数,那么还需要一些聚合函数的计算.所以,在GROUP BY 的实现过程中,与 ORDER BY 一样也可以利用到索引. 在MySQL 中,GROUP BY 的实现同样有多种(三种)方式,其中有两种方式会利用现有的索引信息来完成 GROUP BY,另外一种为完全无法使用索引的场景下使用.下面我们分别针对这三种实现方式做一个分

Oracle和MySQL分组查询GROUP BY

Oracle和MySQL分组查询GROUP BY 真题1.Oracle和MySQL中的分组(GROUP BY)有什么区别?答案:Oracle对于GROUP BY是严格的,所有要SELECT出来的字段必须在GROUP BY后边出现,否则会报错:"ORA-00979: not a GROUP BY expression".而MySQL则不同,如果SELECT出来的字段在GROUP BY后面没有出现,那么会随机取出一个值,而这样查询出来的数据不准确,语义也不明确.所以,作者建议在写SQL语句

数据-java mysql 按日期分组查询

问题描述 java mysql 按日期分组查询 如在mysql中有张表user 有三条数据 注册时间分别是是2014-11-28,2014-11-28,2014-11-29 那我要怎么分组查询出2014-11-01到2014-11-30的数据,空的也显示 要显示成 count time . . . . 0 2014-11-26 0 2014-11-27 2 2014-11-28 1 2014-11-29 0 2014-11-30 或者在java里面怎么补全 解决方案 告诉你思路,自己写,mysq

动态分组查询

动态|分组 原帖地址:http://community.csdn.net/Expert/topic/3428/3428792.xml?temp=.6476251 --示例数据create table 表(ID int,NUM int)insert 表 select 1,2union all select 2,3union all select 3,2union all select 4,2union all select 5,12union all select 6,2union all sel

解析JPA的视图查询问题

        这篇文章主要是对JPA的视图查询问题进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 昨天晚上遇到一个需求,每天早上要生成一份报告给各个部门的Leader.实现方式基本上确定为HTML格式的电子邮件.但是数据方面犯了难.原因在于数据库中存储的数据是跨表的,而且还要做count统计,这样得到的结果就不是原生的MySQL表,我用的又是JPA技术.我们知道,使用JPA第一步就是映射实体,每一张表就至少对应一个实体(力求严谨,因为联合主键时一张表会对应两个对象).可是对

java-一个纠结的sql分组查询语句

问题描述 一个纠结的sql分组查询语句 是这样的 数据库里有一张 宿舍用电表(宿舍号,时间,电表度数) dormitoryElectric(dormitory,time,electric) 里面存的是每个小时电表上的度数,那我想查询所有宿舍近7天的每天用电度数要怎么写. 效果大概是这样的: 宿舍1 第一天用电度数 第二天用电度数 第三天用电度数 ... 宿舍2 第一天用电度数 第二天用电度数 第三天用电度数 ... 第二天用电度数应该是第二天的最后一次电表度数减去第一天的最后一次电表度数 解决方

mysql 数据库-关于mysql关联多列查询,分组查询并输出每组数据的中值

问题描述 关于mysql关联多列查询,分组查询并输出每组数据的中值 imei phone key value 863184021544828 lenovoa788t c14 484 355799050650579 samsungi9500 c14 542 355799050650579 samsungi9500 c14 623 868331013987821 huaweiu9508 c14 523 868331013987821 huaweiu9508 c14 498 8683310139878