如何在单个选择查询中获取均值,中位数,众数和范围?

哥谭·拉莫莫西

我正在尝试获取表中一组值的均值,中位数,众数和范围。我能够得到平均值,但中位数,范围和众数却弄错了。

以下是我为上述概念所尝试的代码。

Select 
    CDS.[Commodity_SourceSeriesID_LongDesc] AS 'Description',
    TD.TimeDimension_Year AS 'Year',
    AVG(DV.DataValues_AttributeValue) AS 'Average/Mean',
    MAX(dv.DataValues_AttributeValue) AS 'Maximum value for the Year',
    MIN(dv.DataValues_AttributeValue) AS 'Minimum value for the Year',
    ((MAX(dv.DataValues_AttributeValue) + MIN(dv.DataValues_AttributeValue)) / 2) AS 'Median',
    --,(SELECT TOP 1 with ties DataValues_AttributeValue
    --FROM   [CoSD].[DataValues] 
    --WHERE  DataValues_AttributeValue IS Not NULL AND DataValues_ERSCommodity_ID = 157 and DataValues_DataRowLifecyclePhaseID = 1
    --GROUP  BY DataValues_AttributeValue
    --ORDER  BY COUNT(*) DESC) AS Mode
    (MAX(dv.DataValues_AttributeValue) - MIN(dv.DataValues_AttributeValue))  AS 'Range'
FROM 
    [CoSD].[DataValues] DV 
INNER JOIN 
    [CoSD].[CommodityDataSeries] CDS ON CDS.Commodity_ID = DV.DataValues_Commodity_ID
INNER JOIN 
    [CoSD].[TimeDimension_LU] TD ON TD.TimeDimension_ID = DV.DataValues_TimeDimension_ID
WHERE 
    DataValues_Commodity_ID = 157  
    AND DataValues_DataRowLifecyclePhaseID IN (1, 4)
GROUP BY 
    DV.DataValues_TimeDimension_ID,
    CDS.Commodity_SourceSeriesID_LongDesc,
    TD.TimeDimension_Year

有没有办法做到这一点?

谢谢

约翰·卡佩莱蒂

不知道这是否会有所帮助,但是这里有一些sql允许我在组中通过以下方式生成一些统计信息(...,均值,中位数,众数,..)。

  • cteBase将是您的核心数据(未聚合或分组)
  • cteMedian将生成cteBase的中位数
  • cteMode将计算cteBase的模式

我只计算出一种度量,但是我怀疑它可以轻松扩展到我有“ GrpByYear”的地方,这将必须扩展到您的复合字段中。

;with cteBase as (
     Select RowNr=Row_Number() over (Partition By Year(TR_Date) Order By Year(TR_Date),TR_Y10)
           ,GrpByYear = Year(TR_Date)
           ,Measure = TR_Y10
     From [Chinrus-Series].[dbo].[DS_Treasury_Rates]
     Where Year(TR_Date)>2014
    )
    ,cteMedian as (Select A.GrpByYear,Measure From cteBase A Join (Select GrpByYear,RowNr=Max(RowNr)/2 from cteBase Group by GrpByYear) B on (A.GrpByYear=B.GrpByYear and A.RowNr=B.RowNr))
    ,cteMode   as (Select * from (Select RowNr=Row_Number() over (Partition By GrpByYear Order by Count(*) Desc),GrpByYear,Measure,Hits=count(*) From cteBase Group by GrpByYear,Measure) A Where RowNr=1)
    Select A.GrpByYear
          ,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 cteMedian B on A.GrpByYear=B.GrpByYear
     Join cteMode   C on A.GrpByYear=C.GrpByYear
     Group By A.GrpByYear
     Order By A.GrpByYear


Year    RecordCount DistinctCount   SumTotal    Minimum Maximum Mean    Median  Mode    StdDev
2016    110         43              204.82      1.63    2.25    1.862   1.84    1.83    0.128568690811108
2015    251         69              536.71      1.68    2.50    2.1382  2.16    2.20    0.1662836533952

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从输入文件中找到均值,中位数,众数和范围?

来自分类Dev

均值,中位数和众数-Newb-Java

来自分类Dev

如何创建显示均值,中位数和众数的seaborn小提琴图?

来自分类Dev

C ++:中位数和众数

来自分类Dev

C ++:中位数和众数

来自分类Dev

如何在Dask中为GroupBy添加自定义聚合功能?例如平均值,众数,中位数,第95个百分点等

来自分类Dev

如何用SFrame中的中位数或众数替换缺失值?

来自分类Dev

如何在 python 3 中打印均值、中值和众数

来自分类Dev

如何从字典中找到键,然后取平均值,中位数和范围

来自分类Dev

在 Shiny 中按日期范围计算平均值和中位数

来自分类Dev

Sql Server 2012中一个查询的平均值和中位数

来自分类Dev

Sql Server 2012中一个查询的平均值和中位数

来自分类Dev

R中的函数:如何在同一函数中返回均值,中位数,标准差

来自分类Dev

如何在熊猫中找到多列的非零中位数/均值?

来自分类Dev

如何在R中执行一个循环,该循环计算行的均值和中位数并将其添加到数据帧中

来自分类Dev

平均值和中位数与摘要

来自分类Dev

不能同时打印中位数和均值

来自分类Dev

Elasticsearch查询以获取每x分钟/小时/天的中位数/平均值

来自分类Dev

如何在Spark Dataframe中分组并获取中位数

来自分类Dev

有没有一种方法可以在单个命令中获取数字列表的最小值,最大值,中位数和平均值?

来自分类Dev

获取Java中位数的值范围

来自分类Dev

获取Java中位数的值范围

来自分类Dev

如何在mariadb中编写基于组的中位数和模式计算函数?这样我就可以在查询本身中使用它

来自分类Dev

当我选择中位数或众数等枢轴时,Quicksort的运行速度不会更快

来自分类Dev

如何使用选择对象在单个查询中获取进程和线程的详细信息?

来自分类Dev

如何在R中建立中位数表?

来自分类Dev

根据每个列类型获取数据框的均值和众数

来自分类Dev

在ggplot2图例中更改中位数和均值的颜色

来自分类Dev

ggplot2函数中的均值和中位数箱线图例

Related 相关文章

  1. 1

    如何从输入文件中找到均值,中位数,众数和范围?

  2. 2

    均值,中位数和众数-Newb-Java

  3. 3

    如何创建显示均值,中位数和众数的seaborn小提琴图?

  4. 4

    C ++:中位数和众数

  5. 5

    C ++:中位数和众数

  6. 6

    如何在Dask中为GroupBy添加自定义聚合功能?例如平均值,众数,中位数,第95个百分点等

  7. 7

    如何用SFrame中的中位数或众数替换缺失值?

  8. 8

    如何在 python 3 中打印均值、中值和众数

  9. 9

    如何从字典中找到键,然后取平均值,中位数和范围

  10. 10

    在 Shiny 中按日期范围计算平均值和中位数

  11. 11

    Sql Server 2012中一个查询的平均值和中位数

  12. 12

    Sql Server 2012中一个查询的平均值和中位数

  13. 13

    R中的函数:如何在同一函数中返回均值,中位数,标准差

  14. 14

    如何在熊猫中找到多列的非零中位数/均值?

  15. 15

    如何在R中执行一个循环,该循环计算行的均值和中位数并将其添加到数据帧中

  16. 16

    平均值和中位数与摘要

  17. 17

    不能同时打印中位数和均值

  18. 18

    Elasticsearch查询以获取每x分钟/小时/天的中位数/平均值

  19. 19

    如何在Spark Dataframe中分组并获取中位数

  20. 20

    有没有一种方法可以在单个命令中获取数字列表的最小值,最大值,中位数和平均值?

  21. 21

    获取Java中位数的值范围

  22. 22

    获取Java中位数的值范围

  23. 23

    如何在mariadb中编写基于组的中位数和模式计算函数?这样我就可以在查询本身中使用它

  24. 24

    当我选择中位数或众数等枢轴时,Quicksort的运行速度不会更快

  25. 25

    如何使用选择对象在单个查询中获取进程和线程的详细信息?

  26. 26

    如何在R中建立中位数表?

  27. 27

    根据每个列类型获取数据框的均值和众数

  28. 28

    在ggplot2图例中更改中位数和均值的颜色

  29. 29

    ggplot2函数中的均值和中位数箱线图例

热门标签

归档