是否可以创建通用SP来确定中位数?

咪咪

我正在使用SQL Server2012。我想问的是,我是否应该继续研究创建SP(或UDF,但可能涉及#Temp表,我在想SP)的能力,以便拥有一个SP。确定可重用对象的中位数?

我希望这不是一个通用的问题,并且可以解决,但是我花了一些时间研究确定中值的能力。一些可能的障碍包括需要传递查询的字符串表示形式,该字符串表示形式将返回我希望对其进行中值处理的数据。

有人尝试过吗?

约翰·卡佩莱蒂

这是我用来生成一些快速统计信息的存储过程。

只需通过源,测量和/或过滤器即可。

CREATE PROCEDURE [dbo].[prc-Dynamic-Stats](@Table varchar(150),@Fld varchar(50), @Filter varchar(500)) 

-- Syntax: Exec [dbo].[prc-Dynamic-Stats] '[Chinrus-Series].[dbo].[DS_Treasury_Rates]','TR_Y10','Year(TR_Date)>2001' 

As

Begin
    Set NoCount On;

    Declare @SQL varchar(max) = 
    '
    ;with cteBase as (
     Select RowNr=Row_Number() over (Order By ['+@Fld+'])
           ,Measure = ['+@Fld+']
     From '+@Table+'
     Where '+case when @Filter='' then '1=1' else @Filter end+' 
    )
    Select RecordCount   = Count(*)
          ,DistinctCount = Count(Distinct A.Measure)
          ,SumTotal      = Sum(A.Measure)
          ,Minimum       = Min(A.Measure)
          ,Maximum       = Max(A.Measure)
          ,Mean          = Avg(A.Measure)
          ,Median        = Max(B.Measure)
          ,Mode          = Max(C.Measure)
          ,StdDev        = STDEV(A.Measure)
     From cteBase A
     Join (Select Measure From cteBase where RowNr=(Select Cnt=count(*) from cteBase)/2) B on 1=1
     Join (Select Top 1 Measure,Hits=count(*) From cteBase Group By Measure Order by 2 desc ) C on 1=1
    '
    Exec(@SQL)

End

退货

RecordCount DistinctCount   SumTotal    Minimum Maximum Mean    Median  Mode    StdDev
3615        391             12311.81    0.00    5.44    3.4057  3.57    4.38    1.06400795277565

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否可以创建通用API GET操作?

是否可以创建匿名通用对象?

是否可以创建通用的中间编程语言?

是否可以创建通用的JpaRepository接口?

是否可以创建一个DateFormatter来将两位数字的年份转换为四位数的年份?

确定性快速选择第 i 阶统计 python(中位数方法的中位数)

是否可以确定何时创建NTFS分区?

是否可以static_assert确定lambda不是通用的?

查找3个值的中位数的通用方法

是否可以创建一个通用存储库来扩展其他扩展Spring的CrudRepository的接口?

寻找对确定排序数组中位数的过程的改进

列表中位数的中位数

是否可以仅使用AND,OR或NOT来创建IF语句?

有没有一种方法可以编写通用代码来确定切片是否包含Go中的特定元素?

如何仅考虑特定行来计算分组的中位数

创建一个中位数数组。爪哇

graphlab创建sframe如何获取SArray中位数

创建每个元素中位数相同的numpy数组

熊猫在特定列的行上创建中位数

是否可以在Standard ML中创建“通用”函数?

是否可以创建具有通用休息类型的类型?

是否可以在Kotlin中创建对伴随对象通用方法的引用?

是否可以为通用类型是某种类型的创建别名?

是否可以创建可由多个ContentView使用的通用ObservableObject类?

是否可以在Swift中创建通用闭包?

是否可以在TypeScript中创建通用的映射对象类型?

是否有任何通用策略可以根据另一个对象的类型来选择要创建的对象类型

中位数选择算法的中位数

中位数选择算法的中位数