2010-02-12 65 views
1

我是SQL服務器的新手。我需要計算的時間戳值的中值在我的表,使MEDIAN在SQL服務器中像AVG一樣的功能

表1: _TimeStamp
2009-12-20 11:59:56.0
2009-12-20 11:59:56.5
2009年-12-20 11:59:56.3
2009-12-20 11:59:56.4
2009-12-20 11:59:56.4
2009-12-20 11:59:56.9

有是計算中位數的好辦法, Function to Calculate Median in Sql Server

對於代碼簡單,我很想實現這個作爲SQL函數,從表1

類似 SELECT AVG(_TimeStamp)

但像 SELECT中位數(_TimeStamp)FROM表1

實施

是有可能將一系列SQL操作保存爲接受參數(_TimeStamp)並返回一個值(中位數)的函數?

+0

有沒有辦法做到你想要的方式:** SELECT MEDIAN(_TimeStamp)FROM Table1 **。但是,您可以在傳遞表名稱並執行一些動態SQL的情況下創建函數。我會忘記功能,只是使用內聯代碼:http://stackoverflow.com/questions/1342898/function-to-calculate-median-in-sql-server/1567946#1567946 – 2010-02-12 22:20:26

回答

0

您可以創建一個標量值函數,並將表值函數作爲參數傳遞給它。然後返回您的操作結果。

+0

是否有可能保存用戶定義的函數,然後從任何後續的SQL查詢中調用它?或者用戶定義的函數必須在任何使用它的SQL查詢中定義?很抱歉問一個基本的問題,但我還沒有找到一個很好的用戶定義函數的在線指南。 – KAE 2010-02-15 15:36:06

+0

請參閱以下鏈接: http://www.sqlteam.com/article/user-defined-functions http://msdn.microsoft.com/en-us/library/aa175085%28SQL.80%29。 ASPX – 2010-02-15 15:53:22

0

你可以用CLR自定義聚合來做到這一點。我會矯枉過正,但技術上可行:-)。