【发布时间】:2016-06-10 17:02:21
【问题描述】:
我正在尝试获取表格中一组值的平均值、中位数、众数和范围。我能够得到平均值,但中位数、范围和众数我弄错了。
以下是我为上述概念尝试的代码。
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 sql-server sql-server-2012