如何计算psql范围内的平均值

时间:2016-07-07 23:02:56

标签: sql database psql

我可以从我的数据库中获得一年的平均值。有没有办法在我的数据库中有效地获取所有年份(2017-2054)的数据,而无需每次都手动输入日期?在我从所有日期中选择平均值以将其放入新表后,是否可以?谢谢!

lcoe=# select techindex, avg(lcoe) from lcoe where year = 2017 group by techindex;
       techindex        |        avg         
------------------------+--------------------
 Combustion Turbine     | 0.0564000003039837
 Unscrubbed             | 0.0689999982714653
 Offshore               |  0.119428569717067
 Photovoltaic           |  0.208888891670439
 EGS                    | 0.0549999997019768
 Fuel Cell              |  0.115666666378578
 Onshore                | 0.0587692308024718
 Scrubbed               | 0.0556000009179115
 Solar Thermal          |  0.134285714477301
 Combined Cycle         | 0.0457142852246761
 Hydrothermal           |  0.104249998694286
 Hydroelectric          | 0.0765999995172024
 IGCC                   | 0.0762727270749482
 Distributed Generation |  0.282000001519918
 Nuclear                | 0.0755000002682209
 Biopower               |  0.125571429197277
(16 rows)`

1 个答案:

答案 0 :(得分:0)

您可以生成年份和技术指标的所有组合,然后生成每个组合的平均值:

public ICommand PreviousDialog
{
   get
   {
       NotifyUpdate();
       return new MvxCommand(() => ShowViewModel<MainViewModel>());
    }
}

// the following method does not get called 
private void NotifyUpdate()
{
    var message = new CustomMessage(this, Age);
    var messenger = Mvx.Resolve<IMvxMessenger>();
    messenger.Publish(message);
}

如果您只想要每年select y.year, ti.techindex, avg(lcoe.lcoe) from (select distinct year from lcoe) y cross join (select distinct techindex from lco) ti left join lcoe on y.year = lcoe.year and ti.techindex = lcoe.techindex group by y.year, ti.techindex;

techindex