飞鸽传书计算乘积的聚合函数跑哪去了呢?
轉(zhuǎn)載的作者KILLILLL。飛鴿傳書計算乘積的聚合函數(shù)跑哪去了呢?
非常郁悶,笨笨的Excel有個product函數(shù)可以用于計算某一列的乘積,但是Oracle,SQL Server都沒有,貌似MySQL也沒有。
看了一下asktom,貌似要自己寫一個product的function,郁悶郁悶。
突然,同事提出嘗試變換一下,可是乘法已經(jīng)是最基本的四則,莫非要變換成加法?!@_@
還是這位同事提出可以用指數(shù)、對數(shù)的方式變換乘法,如下:
飛鴿傳書下載:http://www.freeeim.com/
指數(shù)和(自然)對數(shù)如此復(fù)雜的運算符Oracle、SQL Server都有現(xiàn)成的函數(shù),為什么乘積就沒有呢?
想不明白。
還是說回正題,最終的SQL語句變成這樣:
Oracle:
view sourceprint?1 select exp(sum(ln( field_name ))) from table_name;
SQL Server:
view sourceprint?1 select exp(sum(LOG( field_name ))) from table_name;
剛才翻了一下SQL Hacks,發(fā)現(xiàn)第24個Hack就是描述這個問題,非常推薦大家讀一下這本書,保證會讓您覺得SQL絕不簡單。
BTW:該書有英文版的CHM下載,也發(fā)售了中文版,但中文版的書評不咋地。
總結(jié)
以上是生活随笔為你收集整理的飞鸽传书计算乘积的聚合函数跑哪去了呢?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenGL编程指南10:组合运动示例1
- 下一篇: 感谢OpenEIM的技术人员能够及时修补