Sql 在同一列中组合两个不同的中值

Sql 在同一列中组合两个不同的中值,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我有这张桌子: Label || Item_Type || Item_Name || Price || Item_Type_Median || Label_Median_Price Tag || C || Tag C1 || 231 || 312 || 416 Tag || C || Tag C2 || 312 || 312 || 416 Tag ||

我有这张桌子:

Label || Item_Type || Item_Name || Price || Item_Type_Median || Label_Median_Price Tag || C || Tag C1 || 231 || 312 || 416 Tag || C || Tag C2 || 312 || 312 || 416 Tag || C || Tag C3 || 416 || 312 || 416 Tag || E || Tag E1 || 523 || 523 || 416 Tag || E || Tag E2 || 152 || 523 || 416 Tag || E || Tag E3 || 629 || 523 || 416 Tag || E || Tag E4 || 29 || 523 || 416 Tag || E || Tag E5 || 727 || 523 || 416 Tag || F || Tag F1 || 671 || 671 || 416 Tag || F || Tag F2 || 1002 || 671 || 416 Tag || F || Tag F3 || 96 || 671 || 416 No_Tag|| G || Tag G || 61 || 61 || 170 No_Tag|| H || Tag H1 || 802 || 419 || 170 No_Tag|| H || Tag H2 || 36 || 419 || 170 No_Tag|| J || Tag J || 102 || 102 || 170 No_Tag|| K || Tag K || 546 || 546 || 170 No_Tag|| M || Tag M || 238 || 238 || 170 我已经能够按预期获得表中的
项目类型
中位价格,但我无法找出如何在同一列中获得
标签
中位价格

SELECT [Label],[Item_Type],SUM([Item_Price]) [Total_Price],AVG([Item_Type_Median]) [Median_Price]
FROM Item_Price_Data
GROUP BY [Label],[Item_Type]
UNION ALL
SELECT [Label],NULL,SUM([Item_Price]),
CASE 
    WHEN [Item_Type] IS NULL THEN [Label_Median_Price]
    ELSE AVG([Item_Type_Median])
END
FROM Item_Price_Data
GROUP BY [Label]
ORDER BY [Label],[Item_Type];

如果将
CASE WHEN
子句替换为
AVG([Label\u Median\u Price])
,您的查询似乎会给出您想要的结果:


我很尴尬(
SELECT [Label],[Item_Type],SUM([Item_Price]) [Total_Price],AVG([Item_Type_Median]) [Median_Price]
FROM Item_Price_Data
GROUP BY [Label],[Item_Type]
UNION ALL
SELECT [Label],NULL,SUM([Item_Price]),
CASE 
    WHEN [Item_Type] IS NULL THEN [Label_Median_Price]
    ELSE AVG([Item_Type_Median])
END
FROM Item_Price_Data
GROUP BY [Label]
ORDER BY [Label],[Item_Type];
SELECT [Label], [Item_Type], SUM([Item_Price]) [Total_Price],
                             AVG([Item_Type_Median]) [Median_Price]
FROM Item_Price_Data
GROUP BY [Label], [Item_Type]
UNION ALL
SELECT [Label], NULL, SUM([Item_Price]), AVG([Label_Median_Price])
FROM Item_Price_Data
GROUP BY [Label]
ORDER BY [Label],[Item_Type];