在t-sql中乘以行
发布时间:2020-12-12 16:18:10 所属栏目:MsSql教程 来源:网络整理
导读:我有下表 ID Number ---------------- 1 41.5 2 42.5 3 43.5 2 44.5 2 45.5 1 46.5 1 47.5 我需要编写一个查询,它将返回不同的ID和相应的Number列值相乘.对于给定的表格结果应该是这样的 ID Result ----------------- 1 41.5 * 46.5 * 47.5 2 42.5 * 44.5 * 4
我有下表
ID Number ---------------- 1 41.5 2 42.5 3 43.5 2 44.5 2 45.5 1 46.5 1 47.5 我需要编写一个查询,它将返回不同的ID和相应的Number列值相乘.对于给定的表格结果应该是这样的 ID Result ----------------- 1 41.5 * 46.5 * 47.5 2 42.5 * 44.5 * 45.5 3 etc... (不使用光标) 解决方法SELECT Id,EXP(SUM(LOG(Number))) as Result FROM Scores GROUP BY id 这将适用于正数,乘以负数也可以使用ABS()函数使用绝对(正)值,但最终结果将为正而不是负数: SELECT Id,EXP(SUM(LOG(ABS(Number)))) as Result FROM Scores GROUP BY id 编辑:添加测试脚本 DECLARE @data TABLE(id int,number float) INSERT INTO @data VALUES (1,2.2),(1,10),(2,-5.5),10) SELECT Id,EXP(SUM(LOG(ABS(Number)))) as Result FROM @data GROUP BY id 输出: 1 22 2 55 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |