当前位置: 首页 > 面试题库 >

GORM中子查询的平均值

车诚
2023-03-14
问题内容

我有一个包含列A和C的表T,我想从中检索一个平均计数,如下所示:

select avg(AC) as AV
from
( 
 select A, count(1) as AC
 from T
 where C = 1
 group by A
)

如何在GORM中完成此任务?GRAILS 2.2.0版我尝试按照文档进行操作,但是没有好的示例。我什至无法使子查询工作:(

我能够使计数部分起作用。现在仍要确定如何获得平均值,因为我不知道如何从查询中进行选择。

def tc = T.createCriteria()

def tCounts = tc.buildCriteria {
    and {
        eq 'C', 1
    }
    projections {
       groupProperty 'A'
       rowCount('AC')
    }
}

问题答案:

这是在HQL中完成的。使用我的域之一在grails控制台中进行了测试:

T.executeQuery("""
select avg(count(*))
from T t
where t.c = 1
group by t.a
""")


 类似资料:
  • 问题内容: 寻求 该查询选择所有以“ Vancouver”开头的点,并且距所有以“ Vancouver”开头的位置的中心相距5分钟以内。例如,温哥华南弗雷泽(Vancouver South Fraser),温哥华锦绣(Vancouver Fairview)和温哥华巴兰特里广场(Vancouver Ballantree Place W)在其平均纬度和经度的5分钟内具有纬度和经度。纬度和经度存储为(4

  • 问题内容: 我想知道是否可以在一个SQL SERVER请求中获得总和的平均值, 尝试使用以下请求来执行此操作,但是它不起作用: 问题答案: 我认为您的问题需要一些解释。如果要取分组的总和,可以使用: 然后,如果要取该总和的平均值,则只需进行以下操作: 但是,您无法对外部查询进行分组,因为这将为您提供类似于第一个查询的结果。内部查询的结果已按分组。

  • 问题内容: 示例数据: 我正在尝试获得上述数据的平均评分。 它需要的是每行*的总和除以总数 这是我正在尝试的操作,但给出的结果不正确(49.07,应为98.15): 可以在单个查询中完成吗?我正在使用SQL Server 问题答案: 只需回到加权平均的定义即可,因此使用s和除法: 如果愿意,可以将其转换为小数:

  • 问题内容: 我有一列的数据像 我需要编写一个SQL查询/过程,这将有助于我获取日期之间差异的平均值。对于上面的示例,它将是 (19 + 8 + 10)/3=12.33。 请提供帮助。 在此先感谢Geetha 问题答案: 我不知道您的RDBMS,但这是来自SQL Server。另外,您的计算之一是错误的-02/09/2011-13/08/2011是20,而不是19。 产生的结果是12.667:(20

  • 我需要更改我的架构吗,还是可以使用当前的设置来更改?

  • 问题内容: 我在Oracle中有一个表,每个给定部分有多行。每行都有一个与之关联的数量和价格。给定零件的行集合总计的总数量也是如此。以下是数据示例。我需要得到零件的平均加权价格。例如,如果数量为100的零件的价格为1,数量为50的零件的价格为2,则加权平均价格为1.33333333 有想法吗? 问题答案: 试试这个: