【问题标题】:How to perform multiple group to get the total average?如何执行多组以获得总平均值?
【发布时间】:2021-06-03 07:23:02
【问题描述】:

我有下表,

S.No    Date,Time            Block        OccupancyActual        OccupancyPercentage
1       1/1/2020,00:00       B1           300                    40%    
2       1/1/2020,01:00       B1           350                    46.6%    
3       1/1/2020,02:00       B1           400                    53.3%    
4       1/1/2020,00:00       B2           200                    50%    
5       1/1/2020,01:00       B2           300                    75%    
6       1/1/2020,02:00       B2           350                    87.5%    
7       2/1/2020,00:00       B1           100                    13.3%    
8       2/1/2020,01:00       B1           200                    26.6%    
.
.
.

基本上,这张表记录了每个街区(B1、B2、B3 等)每小时的占用情况(每天 24 个条目,但上面没有完全提到)。

每一行包含块的名称和当时块中的单元数,以及块的填充百分比([块中的块数/块的总容量]为%)

整个院子的平均总入住率每天是每个街区的平均入住人数(每个街区的24个条目)的总和,整个院子的总容量是每个区块的总容量之和。

你能帮我写一个postgre sql查询来获得院子每天的平均入住率吗?类似的东西,

S.No    Date                 OccupancyTotalActual        OccupancyPercentage
1       1/1/2020             6000                        40%    
2       2/1/2020             5000                        33.3%    
3       3/1/2020             2500                        16.6%    
.
.
.

【问题讨论】:

  • 什么是“院子”?什么是“每个街区的平均入住率之和”?
  • Yard 是块的集合,每个块中都有多个盒子。存在的盒子构成了占用。容量是块可以容纳的最大盒子数。。跨度>

标签: sql postgresql aggregate-functions


【解决方案1】:

嗯。 . .此逻辑是否符合您的要求?

select date_trunc(day, datetime),
       sum(OccupancyActual),
       sum(OccupancyActual) / sum(OccupancyActual / OccupancyPercentage) as OccupancyRatio
from t
group by date_trunc(day, datetime);

【讨论】:

  • 是的,它似乎给了我结果.. 我还没有检查结果是否正确.. 但我不明白这是如何计算的.. 你能详细说明一下吗?那真的很有帮助..
  • @codeworks 。 . .这个查询对我来说似乎很清楚。这是一个聚合查询。您可能想查看单独的结果表单 sum(OccupancyActual)sum(OccupancyActual / OccupancyPercentage)
猜你喜欢
  • 2023-03-07
  • 2021-06-23
  • 2019-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-01
  • 2012-03-18
  • 1970-01-01
相关资源
最近更新 更多