ms-access – 聚合乘法函数
发布时间:2020-12-13 20:08:35 所属栏目:百科 来源:网络整理
导读:我有一张以下表格: 1 X 102 X 303 Y 54 Y 2...etc 我需要把它变成: X 300 //(10 * 30)Y 10 //(5 * 2) 所以我实际上正在寻找一种乘法函数,我可以像sum,avg和stuff那样使用……这样的人存在吗? 例如: select field2,**multiply**(field3)from tgroup by fi
我有一张以下表格:
1 X 10 2 X 30 3 Y 5 4 Y 2 ...etc 我需要把它变成: X 300 //(10 * 30) Y 10 //(5 * 2) 所以我实际上正在寻找一种乘法函数,我可以像sum,avg和stuff那样使用……这样的人存在吗? 例如: select field2,**multiply**(field3) from t group by field2 谢谢
理想情况下,Access SQL可以使用PRODUCT聚合函数,但事实并非如此.然而,我们可以通过记住我们在学校学习的对数(或不是……)来模拟它,并记住日志总和的反对数等于产品:
SELECT field2,EXP(Sum(LOG(Field3))) AS ProductOfField3 FROM t GROUP BY Field2 请注意,如果存在任何零值,则真正的PRODUCT函数将仅为组返回0,则此解决方案将失败,因此请注意这一点.此外,如果存在任何负值,此方法将不起作用. 要处理零,我们可以这样做: SELECT field2,EXP(Sum(LOG(IIf(Field3 = 0,1,Field3)))) AS ProductOfField3,MIN(ABS(Field3)) AS MinOfAbsField3 FROM t GROUP BY Field2 然后忽略MinOfAbsField3为零的任何行的ProductOfField3值(因为这表示一个包含零的组,因此’true’产品应为0) 为了处理负值,我们可以进一步做到这一点: SELECT field2,ABS(Field3))))) AS ProductOfField3,MIN(ABS(Field3)) AS MinOfAbsField3,SUM(IIf(Field3 < 0,0)) AS SumOfNegativeIndicator FROM t GROUP BY Field2 并使用以下规则解释结果: >如果MinOfAbsField3为零,则忽略该行的ProductOfField3 – 产品为零>否则,给定行的必需答案是ProductOfField3,如果SumOfNegativeIndicator在该行中为奇数则否定 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Newtonsoft.Json序列化和反序列
- C语言第七天---------------函数指针多态
- c# – 将NodaTime转换为Unix时间戳以及LocalDateTime的重要
- 在XCode解决方案中使用MonoDevelop C#类
- ruby-on-rails – 工厂女孩 – 有许多协会
- oracle数据库死锁原因及分析
- ruby-on-rails – 将http_params转换为哈希
- ruby-on-rails – Ubuntu上的Ruby Gem Guard,没有’guard’
- xml – 为什么XSLT从未见过互联网繁荣期间出现的许多其他语
- inout / var参数是否与引用类型有任何区别?