【问题标题】:How to do a division, calculate a percentage in HQL?如何进行除法,计算 HQL 中的百分比?
【发布时间】:2013-08-17 17:24:18
【问题描述】:

我正在尝试计算百分比,但编译器一直告诉我它不需要斜杠和第三个 select 语句。

Query query = session.createQuery("SELECT 
(SELECT COUNT(*) FROM Reservation r WHERE r.begin BETWEEN :start AND :end) 
/
(SELECT COUNT(*) FROM Reservation res WHERE res.begin BETWEEN :start AND :end AND res.contract IS NOT NULL) * 100");

当我尝试运行它时,它给了我这个错误:

Exception in thread "main" org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected end of subtree

我做错了什么? 提前致谢!

【问题讨论】:

标签: java hibernate hql


【解决方案1】:

两个计数可以合并为一个查询:

SELECT (count(r.contract) / count(r)) * 100 
FROM Reservation r 
WHERE r.begin between :start and :end

在一些导致整数除法的数据库中,以下是更好的:

SELECT (count(r.contract)*1.0 / count(r)) * 100 
FROM Reservation r 
WHERE r.begin between :start and :end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-12
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 2010-11-22
    相关资源
    最近更新 更多