2
값 그룹의 제품을 구현하는 가장 좋은 방법은 무엇입니까?그룹화하여 여러 값을 모두?
select Col1, multiple(V) -- returns v1*v2*...*vn
from Table
group by Col1
값 그룹의 제품을 구현하는 가장 좋은 방법은 무엇입니까?그룹화하여 여러 값을 모두?
select Col1, multiple(V) -- returns v1*v2*...*vn
from Table
group by Col1
You can fake a product()
aggregate function by doing the following :
SELECT Col1, EXP(SUM(LOG(V)))
FROM Table
GROUP BY Col1
왜이 일을 하는가?
는 다음의 예를 보자
DECLARE @x INT, @y INT
SET @x = 7
SET @y = 8
-- Both return 4.02535
PRINT LOG(@x * @y)
PRINT LOG(@x) + LOG(@y)
-- Both return 56.
PRINT EXP(LOG(@x) + LOG(@y))
PRINT @x * @y
그래서 대수, LOG(x * y) = LOG(x) + LOG(y)
에 대한 ... 그리고 우리는 SUM()
기능을 가지고 있지만 우리가 LOG()
다음 SUM()
이러한 결과로 각각의 값을 전달 경우 PRODUCT()
기능이 부족하기 때문에, 모든 값을 곱한 다음 결과를 LOG()
에 전달하는 것과 같습니다.
마지막으로 을 반대로하기 위해 SUM()
에 대해 EXP()
이 수행됩니다.
올바르게 작동하려면 몇 가지 규정이 있습니다. 예를 들어 모든 값이 0보다 커야합니다.