Hibernate---报表查询

  • 报表查询用于对数据分组和统计, 与 SQL 一样, HQL 利用 GROUP BY 关键字对数据分组, 用 HAVING 关键字对分组数据设定约束条件.
  • 在 HQL 查询语句中可以调用以下聚集函数
  1. count():同级数据个数
  2. min():求最小数
  3. max():求最大数
  4. sum():求和
  5. avg():求平均数
  1. 统计每个部门的人数
    @Test
    public void testGroupBy(){
        String hql = "SELECT COUNT(e) FROM Employee e GROUP BY e.dept";
        Query query = this.session.createQuery(hql);
        List list = query.list();
        System.out.println(list);
    }

在这里插入图片描述

  • 使用HAVING 关键字筛选出部门人数大于10的部门
    @Test
    public void testGroupBy(){
        String hql = "SELECT COUNT(e) FROM Employee e GROUP BY e.dept HAVING COUNT(e) > 10";
        Query query = this.session.createQuery(hql);
        List list = query.list();
        System.out.println(list);
    }

在这里插入图片描述

  • 计算雇员的平均工资,最高工资,最低工资
@Test
    public void testGroupBy(){
       // String hql = "SELECT COUNT(e) FROM Employee e GROUP BY e.dept HAVING COUNT(e) > 10";
        String hql = "SELECT AVG(e.salary),MAX(e.salary),MIN(e.salary) " +
                " FROM Employee e ";
        Query query = this.session.createQuery(hql);
        List<Object[]> list = query.list();
        for (Object[] o:list){
            System.out.println("平均工资: "+o[0]);
            System.out.println("最高工资: "+o[1]);
            System.out.println("最低工资: "+o[2]);
        }

    }

在这里插入图片描述

  • 统计雇员工资总和
    @Test
    public void testGroupBy(){
        String hql = "SELECT SUM(e.salary) " +
              " FROM Employee e ";
        Query query = this.session.createQuery(hql);

        List<Object> list = query.list();
        for (Object o : list){
            System.out.println("工资总和 : " + (Double)o);
        }

    }

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值