第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

函數(shù)計算SQLServer中的中位數(shù)

函數(shù)計算SQLServer中的中位數(shù)

智慧大石 2019-06-25 17:14:18
函數(shù)計算SQLServer中的中位數(shù)根據(jù)MSDN,中位數(shù)在Transact-SQL中不能作為聚合函數(shù)使用。但是,我想知道是否可以創(chuàng)建此功能(使用創(chuàng)建聚合函數(shù)、用戶定義函數(shù)或其他方法)。最好的方法(如果可能的話)是什么?允許在聚合查詢中計算中值(假設(shè)是數(shù)字?jǐn)?shù)據(jù)類型)?
查看完整描述

3 回答

?
繁花不似錦

TA貢獻1851條經(jīng)驗 獲得超4個贊

有很多方法可以做到這一點,而且性能有很大的變化。這里有一個特別優(yōu)化的解決方案,來自中介、行號和性能..當(dāng)涉及到在執(zhí)行過程中生成的實際I/O時,這是一個特別優(yōu)化的解決方案-它看起來比其他解決方案花費更高,但它實際上要快得多。

該頁面還包含其他解決方案和性能測試細節(jié)的討論。注意,在中間列的值相同的多行情況下,使用唯一列作為消歧器。

與所有數(shù)據(jù)庫性能場景一樣,始終嘗試使用真實硬件上的真實數(shù)據(jù)測試解決方案-您永遠不知道對SQLServer優(yōu)化器的更改或您環(huán)境中的特性何時會使一個通??焖俚慕鉀Q方案變得更慢。

SELECT
   CustomerId,
   AVG(TotalDue)FROM(
   SELECT
      CustomerId,
      TotalDue,
      -- SalesOrderId in the ORDER BY is a disambiguator to break ties
      ROW_NUMBER() OVER (
         PARTITION BY CustomerId         ORDER BY TotalDue ASC, SalesOrderId ASC) AS RowAsc,
      ROW_NUMBER() OVER (
         PARTITION BY CustomerId         ORDER BY TotalDue DESC, SalesOrderId DESC) AS RowDesc   FROM Sales.SalesOrderHeader SOH) xWHERE
   RowAsc IN (RowDesc, RowDesc - 1, RowDesc + 1)GROUP BY CustomerIdORDER BY CustomerId;


查看完整回答
反對 回復(fù) 2019-06-25
?
子衿沉夜

TA貢獻1828條經(jīng)驗 獲得超3個贊

如果您使用的是SQL 2005或更高版本,那么對于表中的單個列來說,這是一個很好的、簡單的中值計算:

SELECT(
 (SELECT MAX(Score) FROM
   (SELECT TOP 50 PERCENT Score FROM Posts ORDER BY Score) AS BottomHalf)
 +
 (SELECT MIN(Score) FROM
   (SELECT TOP 50 PERCENT Score FROM Posts ORDER BY Score DESC) AS TopHalf)) / 2 AS Median


查看完整回答
反對 回復(fù) 2019-06-25
  • 3 回答
  • 0 關(guān)注
  • 2251 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號