アクティブでない人の割合を、アクティブな人の割合で割って計算したいと思います。
次の HQL クエリのようなものを実行しますが、機能しませんでした。
(select count(x) from People as x where x.active=false) /
(select count(x) from People as x where x.active=true)
どうやってやるの?
アクティブでない人の割合を、アクティブな人の割合で割って計算したいと思います。
次の HQL クエリのようなものを実行しますが、機能しませんでした。
(select count(x) from People as x where x.active=false) /
(select count(x) from People as x where x.active=true)
どうやってやるの?
このようなものが動作するはずです
String hql = "select count(x)/(select count(x) from People as x where x.active=true)
from People as x where x.active=false";
Long result = (Long) em.createQuery(hql).getSingleResult();
注:上記はテストされていません
HQL 式を使用しているため、Hibernate を使用していると想定しています。この場合、@Formula
アノテーションを使用することをお勧めします。ここで追加情報を見つけることができます: