聚合函数:

实例:

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("失败");
}
} }

hibernate-聚合函数分组统计数据查询的更多相关文章

  1. 18 12 06 sql 的 基本语句 查询 条件查询 逻辑运算符 模糊查询 范围查询 排序 聚合函数 分组 分页 连接查询 自关联 子查询

    -- 数据的准备 -- 创建一个数据库 create database python_test charset=utf8; -- 使用一个数据库 use python_test; -- 显示使用的当前 ...

  2. Django orm进阶查询(聚合、分组、F查询、Q查询)、常见字段、查询优化及事务操作

    Django orm进阶查询(聚合.分组.F查询.Q查询).常见字段.查询优化及事务操作 聚合查询 记住用到关键字aggregate然后还有几个常用的聚合函数就好了 from django.db.mo ...

  3. hibernate学习系列-----(5)hibernate基本查询下篇:hibernate聚合函数、分组查询及命名查询

    在上一篇中,大致学习了hibernate的基本查询:HQL基本查询,今天,继续昨天的步伐,继续学习hibernate的基本查询..... 1.hql聚合函数,先大致列一下hql的聚合函数有哪些吧: 在 ...

  4. sql server 分组统计数据

    说明:group by是sql中对数据表中的数据进行分组的,在select列表中出现的字段必须全部出现在group by 字段中,出现在聚合函数中的字段在group by中可有可无,没有出现在sele ...

  5. java:Oracle(聚合函数,多表查询,表之间的关系)

    1.聚合函数 --max,min,sum,avg,count,nvl(,) -- max:最大值 -- max既能取数字的最大值,也可以取字符串的最大值(英文字母排列顺序),根据场景实际意义来看,最好 ...

  6. ES 24 - 如何通过Elasticsearch进行聚合检索 (分组统计)

    目录 1 普通聚合分析 1.1 直接聚合统计 1.2 先检索, 再聚合 1.3 扩展: fielddata和keyword的聚合比较 2 嵌套聚合 2.1 先分组, 再聚合统计 2.2 先分组, 再统 ...

  7. MySQL☞聚合函数/分组函数

    分组函数(聚合函数) 1.count(*/列名): a.*:求出该数据的总条数 select  count(*)  from 表名 b.列名:求出该列中列名不为null的总条数 select  cou ...

  8. mysql按日期分组统计数据

    最近在做一个招聘网时,需要显示一个月内企业招聘信息的发布数量,按日期分组统计,刚开始是直接从源数据库表里面进行group by,但这样子就出现日期不连续的问题了,我想要的效果是,若当天没有数据,则显示 ...

  9. 常用sql:按照表中的某一列对数据进行分组,统计数据条数

    select FROM_UNIXTIME(start_time,'%Y-%m-%d')as date,COUNT(*) FROM random_num GROUP BY FROM_UNIXTIME(s ...

随机推荐

  1. window.location.href = window.location.href 跳转无反应 a 超链接 onclick 点击跳转无反应

    错误写法 , 主要是在 href="#"这里 <a href="#" id="send" onclick="return b ...

  2. FPGA中的INOUT接口和高阻态

    除了输入输出端口,FPGA中还有另一种端口叫做inout端口.如果需要进行全双工通信,是需要两条信道的,也就是说需要使用两个FPGA管脚和外部器件连接.但是,有时候半双工通信就能满足我们的要求,理论上 ...

  3. Java面试知识点总结

    本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺(阅读本文需要有一定的Java基础:若您初涉 ...

  4. 为 Xamarin.Forms 做个跑马灯控件

    前段时间,私下用 Xamarin.Forms 做了个商业项目的演示版.很多被国内App玩坏了的控件/效果,XF上都没有或是找不到对应的实现,没有办法只能亲自上阵写了几个,效果还行,就是有BUG. 这个 ...

  5. unity3d Vector3.Lerp解析

    Vector3.Lerp:http://www.ceeger.com/Script/Vector3/Vector3.Lerp.html 手册中描述的不是很详细,什么叫“按照数字t在from到to之间插 ...

  6. Javascript将构造函数扩展为简单工厂

    一般而言,在Javascript中创建对象时需要使用关键字new(按构造函数去调用),但是某些时候,开发者希望无论new关键字有没有被显式使用,构造函数都可以被正常调用,即构造函数同时还具备简单工厂的 ...

  7. grootjs 简明教程

    grootJs简明教程 mvvm框架也是解决的一类问题,在某些时候会提高生产效率: 经过接近一个月的努力,grootJs测试版终于发布了 grootJs是一个mvvm的框架,名字取 grass 和ro ...

  8. js自定义事件

    自定义事件的本质,创建一个对象,然后把事件的名字作为对象的一个属性,然后value是一个[],把此事件的所以回调都push进去. 写一个很基本的,没有把对象暴露出去的js的自定义事件. var eve ...

  9. 【JavaEE企业应用实战学习记录】logFilter

    package sanglp.servlet; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import ja ...

  10. Spring学习进阶 (三) Spring AOP

    一.是什么AOP是Aspect Oriented Programing的简称,最初被译为“面向方面编程”:AOP通过横向抽取机制为无法通过纵向继承体系进行抽象的重复性代码提供了解决方案.比如事务的控制 ...