Nar*_*rio 16 sql t-sql sql-server sql-server-2008
我有下表
ID Number
----------------
1 41.5
2 42.5
3 43.5
2 44.5
2 45.5
1 46.5
1 47.5
Run Code Online (Sandbox Code Playgroud)
我需要编写一个查询,它将返回不同的ID和相应的Number列值相乘.对于给定的表,结果应该是这样的
ID Result
-----------------
1 41.5 * 46.5 * 47.5
2 42.5 * 44.5 * 45.5
3 etc...
Run Code Online (Sandbox Code Playgroud)
(不使用游标)
sll*_*sll 26
SELECT Id, EXP(SUM(LOG(Number))) as Result
FROM Scores
GROUP BY id
Run Code Online (Sandbox Code Playgroud)
这适用于正数,也可以乘以负数,你可以使用ABS()函数来使用绝对(正)值,但最终结果将是正数而不是负数:
SELECT Id, EXP(SUM(LOG(ABS(Number)))) as Result
FROM Scores
GROUP BY id
Run Code Online (Sandbox Code Playgroud)
编辑:添加测试脚本
DECLARE @data TABLE(id int, number float)
INSERT INTO @data VALUES
(1, 2.2),
(1, 10),
(2, -5.5),
(2, 10)
SELECT Id, EXP(SUM(LOG(ABS(Number)))) as Result
FROM @data GROUP BY id
Run Code Online (Sandbox Code Playgroud)
输出:
1 22
2 55
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8310 次 |
最近记录: |