SQL 聚合 連乘

2021-07-02 06:07:56 字數 693 閱讀 5806

很傻很天真地鄙視了sql沒有連乘的聚合函式。

還自己在sql server 上拷貝別人的方法實現了很慢的連乘,由於當時對效能沒有什麼要求,出結果就可以了。

create function [dbo].[multirisk](@username varchar(100),@pname varchar(200))

returns float

asbegin

declare @s float

set @s=1.0

select @s=@s* risk from rdb..tmp_result where username=@username and pname=@pname

return @s

end

本來打算帶女友混個北師acm校賽的證書什麼的,但是**的一塌糊塗,都沒臉見人了,於是開始怒刷acm的題目,刷的時候想起了sql 也有log 函式,還有exp函式,猛地又深深地鄙視了自己。

原來聚合函式不是沒有連乘而是不需要。

只要使用如下方法就可以了

select exp(sum(log(risk))) as result,username from tmp_result group by username

說來,即使是全職的dba,做點acm這類的題目也是有好處的。

SQL聚合函式

聚合函式有5種 1 sum函式 求和,只能用於數字型別。字元型別統計結果為 0 日期型別統計的結果是毫秒數相加。sllect sum sal from t emp where deptno in 10,20 2 max函式 最大值,獲取非空值的最大值。select max comm from t e...

SQL 聚合函式 非聚合函式

聚合函式 聚合函式就是對一組值進行計算後返回單個值 即分組 聚合函式在計算時都會忽略空值 null 所有的聚合函式均為確定性函式。即任何時候使用一組相同的輸入值呼叫聚合函式執行後的返回值都是相同的,無二義性。2 聚合開窗函式 聚合函式加上 over 開窗函式就是聚合開窗函式。create table...

SQL研究 非平衡樹聚合

今天,我重新 檢查了乙個困擾已久的問題,在經過仔細的考慮,算是找到了乙個比較合理的解決辦法。問題是這樣的,表 storeproductsales 記錄一系列的商場以及它們每天的營業額。商場與商場之間有從屬關係,記錄在 store withacestor 表裡。當使用者查詢某個商場的對某個產品的銷售額...