내 데이터를 seconditemid
으로 그룹화합니다. 전체 행 (모든 테이블 데이터의 초산 결합)에 대한 각 행의 백분율을 sum(extcost)
으로 계산할 수 있습니까?PostgreSQL은 총 행의 합계에 대한 현재 행의 값의 백분율을 계산합니다.
예를 들어 결과 집합에 2 행이 있고 A1은 총 4500, A2는 총 5500, 총합은 10000, A1은 45 %, A2는 55 %를 차지합니다.
seconditemid|ratio
--------------------
A1 |.45
--------------------
A2 |.55
내 쿼리가 작동하지 않습니다
select seconditemid,
round(100.0*(
sum(case when seconditemid = ---the current row's seconditemid
then 1 else 0 end)/sum(extcost)
),1) as ratio
from inventory_fact f inner join item_master_dim i using (itemmasterkey)
where transtypekey = 1
group by seconditemid
order by 2 desc;
입니다.
CREATE TABLE c (
seconditemid text,
total int
);
INSERT INTO c (seconditemid, total) VALUES ('A1', 4500);
INSERT INTO c (seconditemid, total) VALUES ('A2', 5500);
: 그것은
select seconditemid, round(100.0*(
sum(extcost)/sum(v1.sumextcost)
),1) as ratio
from from inventory_fact f inner join item_master_dim i using (itemmasterkey), v1
where transtypekey = 1
group by seconditemid
order by 2 desc;
각 컬럼의 배급은 0
, 당신에게 각 항목 값> = 10 %가 확실하다 ? 포인트 이후에만 첫 번째 자릿수로 올림합니다. – cur4so