MSSQL

MSSQL 곱셈-집계 함수 곱셈, SUM() 곱셈함수, row 곱셈, 특정필드 값 곱셈

denisOh 2014. 6. 12. 01:31

제목 뒤에 붙은 “집계 함수 곱셈, SUM() 곱셈함수, ..”은 검색이 좀 용이하라고 붙여둔 것 입니다.

 

SUM() 처럼 덧셈을 해주는 집계 함수는 있는데, 곱셈을 해주는 집계 함수는 없습니다.

사실 곱셈을 집계라고 부르긴 쫌 뭐한 부분이 있습니다.

여튼 곱셈을 할 때에는 EXP(SUM(LOG(val))) 이렇게 합니다.

create table #testMultiplication
(
    id int IDENTITY(1,1) NOT NULL,
    g nvarchar(50) not null,
    val int not null
)
go

insert into #testMultiplication values ('g1', 2)
insert into #testMultiplication values ('g1', 3)
insert into #testMultiplication values ('g1', 4)
insert into #testMultiplication values ('g2', 20)
insert into #testMultiplication values ('g2', 30)
insert into #testMultiplication values ('g2', 40)

SELECT g
     , EXP(SUM(LOG(val))) val
FROM #testMultiplication
group by g


drop table #testMultiplication
go