sql >> Databasteknik >  >> RDS >> PostgreSQL

postgres aggregerade funktionsanrop kanske inte är kapslade

Jag kommer att anta att du måste beräkna den inre formeln för vissa grupper av poster först och sedan summera resultaten. Jag använder product kolumn som ett godtyckligt val för att gruppera kolumn. Jag döpte också om Count till dcount .

SQLFiddle

Exempeldata:

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);

Fråga:

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

Poängen är att du inte kan kapsla aggregerade funktioner. Om du behöver sammanställa aggregat måste du använda subquery.




  1. mySQL 'där namn INTE I' fungerar inte?

  2. Hitta det totala antalet baserat på värden från en annan tabell

  3. Begränsa raderingsfrågan med viloläge

  4. Oracle:Partitionstabell per månad