지원 되는 집계 함수
  • avg(...), sum(...), min(...), max(...)
  • count(*)
  • count(...), count(distinct ...), count(all...)

통합 테스트
Seller s = (Seller)session.get(Seller.class, 1);
Map map = (Map)session.createFilter(s.getItems(),
                            "select new map(count(*) as count, " +
                                                    "avg(price) as avg, " +
                                                    "sum(price) as sum, " +
                                                    "min(price) as min, " +
                                                    "max(price) as max)").uniqueResult();
       
List list = session.createQuery("select new map(s.id as sellerId, " +
                                                       "count(i) as itemCount, " +
                                                       "max(i.price) as maxPrice, " +
                                                       "min(i.price) as minPrice, " +
                                                       "avg(i.price) as avgPrice) " +
                                                       "from Seller s join s.items i " +
                                                       "where i.price > 3000 " +
                                                       "group by s " +
                                                       "having max(i.price) > 4000").list();
System.out.println(map);
System.out.println(list);


출력 결과
{sum=27500, min=500, max=5000, avg=2750.0, count=10}

[{sellerId=1, maxPrice=5000, itemCount=4, minPrice=3500, avgPrice=4250.0},
{sellerId=2, maxPrice=5000, itemCount=4, minPrice=3500, avgPrice=4250.0},
{sellerId=3, maxPrice=5000, itemCount=4, minPrice=3500, avgPrice=4250.0},
{sellerId=4, maxPrice=5000, itemCount=4, minPrice=3500, avgPrice=4250.0},
{sellerId=5, maxPrice=5000, itemCount=4, minPrice=3500, avgPrice=4250.0}]

'Hibernate' 카테고리의 다른 글

HQL - update, delete 절  (0) 2008.04.20
HQL - 식별자 프로퍼티 참조  (0) 2008.04.17
HQL - 집계 함수, group by, having  (0) 2008.04.16
HQL - 컬렉션 필터  (0) 2008.04.13
HQL - fetch  (0) 2008.04.13
HQL - select 절  (0) 2008.04.13
Posted by 째코

댓글을 달아 주세요