sql >> データベース >  >> RDS >> PostgreSQL

postgres集計関数呼び出しはネストできません

    合計の結果よりも、最初にいくつかのアイテムのグループの内部式を計算する必要があると想定します。 productを使用しています 列をグループ化するための任意の選択肢としての列。 Countの名前も変更しました dcountへ 。

    SQLFiddle

    サンプルデータ:

    create table sample (
      product varchar,
      dcount int,
      impressions int,
      volume int
    );
    
    insert into sample values ('a', 100, 10, 50);
    insert into sample values ('a', 100, 20, 40);
    insert into sample values ('b', 100, 30, 30);
    insert into sample values ('b', 100, 40, 30);
    insert into sample values ('c', 100, 50, 10);
    insert into sample values ('c', 100, 60, 100);
    

    クエリ:

    select
      sum(frequency) as frequency
    from 
      (
      select
        product,
        sum((impressions / dcount::numeric) * volume) / sum(volume) as frequency
      from 
        sample
      group by
        product
      ) x;
    

    重要なのは、集計関数をネストできないということです。集計を集計する必要がある場合は、サブクエリを使用する必要があります。




    1. C#を使用してMySQLのステートメントを更新する

    2. MySQL Insertステートメントにwhere句を追加するにはどうすればよいですか?

    3. 複合主キーを使用したYiiモデル

    4. FeatureCollectionをGeometryCollectionまたはMultiPolygonに変換する方法は?