Hibernate Avg() Function (Aggregate Functions)
In this section, we will show you, how to use
the avg() function. Hibernate supports multiple aggregate functions. When they
are used in HQL queries, they return an aggregate value ( such as avg(...), sum(...), min(...), max(...) , count(*),
count(...), count(distinct ...), count(all...) ) calculated from property values of all objects satisfying other
query criteria.
Following is a aggregate function (avg()
function) with their respective syntax.
avg( [ distinct | all ] object.property):
The avg() function
aggregates the average value of the given column.
Table Name: insurance
ID
|
insurance_name
|
invested_amount
|
investement_date
|
2
|
Life Insurance
|
25000
|
0000-00-00 00:00:00
|
1
|
Givan Dhara
|
20000
|
2007-07-30 17:29:05
|
3
|
Life Insurance
|
500
|
2005-10-15 00:00:00
|
4
|
Car Insurance
|
2500
|
2005-01-01 00:00:00
|
5
|
Dental Insurance
|
500
|
2004-01-01 00:00:00
|
6
|
Life Insurance
|
900
|
2003-01-01 00:00:00
|
7
|
Travel Insurance
|
2000
|
2005-02-02 00:00:00
|
Here is the java code to retrieve the average
value of "invested_amount" column from insurance table:
package roseindia.tutorial.hibernate;
import java.util.Iterator; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateHQLAvgFunction { /** * @Vinod kumar */ public static void main(String[] args) { // TODO Auto-generated method stub Session sess = null; try { SessionFactory fact = new Configuration() .configure().buildSessionFactory(); sess = fact.openSession(); String SQL_QUERY = "select avg (investementAmount) from Insurance insurance"; Query query = sess.createQuery(SQL_QUERY); List list = query.list(); System.out.println("Average of Invested Amount: " + list.get(0)); } catch(Exception e){ System.out.println(e.getMessage()); } } } |
Output:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Hibernate: select avg(insurance0_.invested_amount) as col_0_0_
from insurance insurance0_
Average of Invested Amount: 7342.8571
|
Comments
Post a Comment