您的位置:首页
hibernate-聚合函数分组统计数据查询
2016-11-06 20:03
513 查看
聚合函数:
实例:
实例:
package Test; import static org.junit.Assert.*; import java.util.List; import org.hibernate.Session; import org.junit.Test; import entity.AvgSal; import util.HibernateSessionFactory; import util.HibernateUtil; public class AggTest { /** * 统计部门个数。 */ @Test public void test1() { Session session =HibernateSessionFactory.getSession(); try { Long count = (Long) session.createQuery("select count(d) from Dept d").uniqueResult(); System.out.println("共有"+count+"个部门。"); } catch (Exception e) { e.printStackTrace(); System.out.println("失败"); } } /** * 统计员工工资。 */ @Test public void test2() { Session session =HibernateSessionFactory.getSession(); try { Double totalsal = (Double) session.createQuery("select sum(e.sal) from Emp e").uniqueResult(); System.out.println("员工工资总数为:"+totalsal); } catch (Exception e) { e.printStackTrace(); System.out.println("失败"); } } /** * 统计员工最低工资。 */ @Test public void test3() { Session session =HibernateSessionFactory.getSession(); try { Double minsal = (Double) session.createQuery("select min(e.sal) from Emp e").uniqueResult(); System.out.println("员工工资最低为:"+minsal); } catch (Exception e) { e.printStackTrace(); System.out.println("失败"); } } /** * 统计员工最高工资。 */ @Test public void test4() { Session session =HibernateSessionFactory.getSession(); try { Double maxsal = (Double) session.createQuery("select max(e.sal) from Emp e").uniqueResult(); System.out.println("员工工资最高为:"+maxsal); } catch (Exception e) { e.printStackTrace(); System.out.println("失败"); } } /** * 统计员工平均工资。 */ @Test public void test5() { Session session =HibernateSessionFactory.getSession(); try { Double avgsal = (Double) session.createQuery("select avg(e.sal) from Emp e").uniqueResult(); System.out.println("员工平均工资为:"+avgsal); } catch (Exception e) { e.printStackTrace(); System.out.println("失败"); } } /** * 统计最低工资、最高工资以及平均工资。 */ @Test public void test6() { Session session =HibernateSessionFactory.getSession(); try { List<Object[]> list = session.createQuery("select min(e.sal),max(e.sal),avg(e.sal) from Emp e").list(); for (Object[] objects : list) { Double minsal=(Double) objects[0]; Double maxsal=(Double) objects[1]; Double avgsal=(Double) objects[2]; System.out.println("最低工资为:"+minsal+",最高工资为:"+maxsal+",平均工资为:"+avgsal); } } catch (Exception e) { e.printStackTrace(); System.out.println("失败"); } } /** * 统计员工职位个数。 */ @Test public void test7() { Session session =HibernateSessionFactory.getSession(); try { Long jobcount = (Long) session.createQuery("select count(distinct e.job) from Emp e").uniqueResult(); System.out.println("共有"+jobcount+"种职位"); } catch (Exception e) { e.printStackTrace(); System.out.println("失败"); } } /** * 按职位统计员工个数。 */ @Test public void test8() { Session session =HibernateSessionFactory.getSession(); try { List<Object[]> list = session.createQuery("select job,count(ename) from Emp group by job").list(); System.out.println("按职位统计员工个数"); for (Object[] objects : list) { String job=(String) objects[0]; Long count=(Long) objects[1]; System.out.println(job+"职位======"+count+"个员工"); } } catch (Exception e) { e.printStackTrace(); System.out.println("失败"); } } /** * 统计各个部门的平均工资 */ @Test public void test9() { Session session =HibernateSessionFactory.getSession(); try { List<Object[]> list = session.createQuery("select job,avg(sal) from Emp group by job").list(); System.out.println("按职位统计每个职位员工的平均工资"); for (Object[] objects : list) { String job=(String) objects[0]; Double avg=(Double) objects[1]; System.out.println(job+"职位平均工资是======"+avg); } } catch (Exception e) { e.printStackTrace(); System.out.println("失败"); } } /** * 统计各个职位的最低工资和最高工资 */ @Test public void test10() { Session session =HibernateSessionFactory.getSession(); try { List<Object[]> list = session.createQuery("select job,max(sal),min(sal) from Emp group by job").list(); System.out.println("统计各个职位的最低工资和最高工资"); for (Object[] objects : list) { String job=(String) objects[0]; Double max=(Double) objects[1]; Double min=(Double) objects[2]; System.out.println(job+"职位最高工资是======"+max+",最低工资是:===="+min); } } catch (Exception e) { e.printStackTrace(); System.out.println("失败"); } } /** * 统计各个部门平均工资高于2000元的部门名称,打印部门名称、部门平均工资 */ @Test public void test11() { Session session =HibernateSessionFactory.getSession(); try { List<Object[]> list = session.createQuery("select dept.dname,avg(sal) from Emp group by dept.dname having avg(sal)>2000").list(); System.out.println("统计各个部门平均工资高于2000元的部门名称,打印部门名称、部门平均工资"); for (Object[] objects : list) { String dept=(String) objects[0]; Double avg=(Double) objects[1]; System.out.println(dept+"\t"+avg); } } catch (Exception e) { e.printStackTrace(); System.out.println("失败"); } } /** * 统计各个部门平均工资高于2000元的部门名称,打印部门名称、部门平均工资,使用JavaBean封装查询结果 */ @Test public void test12() { Session session =HibernateSessionFactory.getSession(); try { List<AvgSal> list = session.createQuery("select new entity.AvgSal(dept.dname,avg(sal) )from Emp group by dept.dname having avg(sal)>2000").list(); System.out.println("统计各个部门平均工资高于2000元的部门名称,打印部门名称、部门平均工资,使用JavaBean(entity.AvgSal)封装查询结果"); for (AvgSal avgSal : list) { System.out.println(avgSal.getDname()+"\t"+avgSal.getAvgsal()); } } catch (Exception e) { e.printStackTrace(); System.out.println("失败"); } } }
相关文章推荐
- 利用 GROUP BY 和 MAX 实现对表数据分组统计后的过滤查询(Oracle920)
- Hibernate-分组统计数据
- SQL查询入门---聚合函数的使用和数据的分组
- mysql排序查询,多条件排序查询,聚合函数的使用,分组统计查询,
- 【面试题】统计产量数据:难点(分组汇总 列转行 查询结果插入)
- hibernate学习系列-----(5)hibernate基本查询下篇:hibernate聚合函数、分组查询及命名查询
- 数据分组--聚合函数使用范例(小计,统计,汇总)实例
- SQL Server数据查询之聚合函数与分组查询
- mysql按日期分组(group by)查询统计的时候,没有数据补0的解决办法
- mysql按日期分组(group by)查询统计的时候,没有数据补0的解决办法。
- 求思路:递归查询后,数据根据父节点分组统计!!!
- mysql按日期分组(group by)查询统计的时候,没有数据补0的解决办法。
- 【面试题】统计产量数据:难点(分组汇总 列转行 查询结果插入)
- Hibernate基本查询下篇:Hibernate聚合函数、分组查询及命名查询 5
- Excel 中使用SQL 语句查询数据(八)-----用Group by 进行分组统计
- 分组查询统计数据 再连接字段修改另一个字段的内容(临时表temporary 和 视图view)
- 4000 Hibernate-分组查询、聚合函数
- mysql按日期分组(group by)查询统计的时候,没有数据补0的解决办法
- SQL语言多表查询、分组统计、子查询、数据表的更新操作、事务处理
- Hibernate数据查询 利用关联关系操纵对象 Hibernate事务 Hibernate的Cache管理