飞鸽传书计算乘积的聚合函数跑哪去了呢?
生活随笔
收集整理的這篇文章主要介紹了
飞鸽传书计算乘积的聚合函数跑哪去了呢?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載的作者KILLILLL。飛鴿傳書計算乘積的聚合函數跑哪去了呢?
非常郁悶,笨笨的Excel有個product函數可以用于計算某一列的乘積,但是Oracle,SQL Server都沒有,貌似MySQL也沒有。
看了一下asktom,貌似要自己寫一個product的function,郁悶郁悶。
突然,同事提出嘗試變換一下,可是乘法已經是最基本的四則,莫非要變換成加法?!@_@
還是這位同事提出可以用指數、對數的方式變換乘法,如下:
飛鴿傳書下載:http://www.freeeim.com/
指數和(自然)對數如此復雜的運算符Oracle、SQL Server都有現成的函數,為什么乘積就沒有呢?
想不明白。
還是說回正題,最終的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,發現第24個Hack就是描述這個問題,非常推薦大家讀一下這本書,保證會讓您覺得SQL絕不簡單。
BTW:該書有英文版的CHM下載,也發售了中文版,但中文版的書評不咋地。
總結
以上是生活随笔為你收集整理的飞鸽传书计算乘积的聚合函数跑哪去了呢?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenGL编程指南10:组合运动示例1
- 下一篇: 感谢OpenEIM的技术人员能够及时修补