我有一个数据库,其中包含餐厅,价格范围(低,中或高),餐厅所在的国家和评论(整数)。
因此,示例输出如下:
Country | price range | score
USA | Low | 5
Italy | Med | 3
England | High | 1
USA | Med | 4
现在,我需要以某种方式显示每个国家/地区在每个范围内的平均得分。意思是每个国家/地区每个范围的平均值,当然需要使用数据透视图来显示它们,尽管我还没有做到。我该怎么办?
答案 0 :(得分:1)
试试这个-
SELECT Country,
AVG(CASE WHEN [price range] = 'low' THEN Score ELSE NULL END) low_Avg,
AVG(CASE WHEN [price range] = 'medium' THEN Score ELSE NULL END) medium_Avg,
AVG(CASE WHEN [price range] = 'high' THEN Score ELSE NULL END) high_Avg
FROM your_table
GROUP BY Country
答案 1 :(得分:0)
通过PIVOT
SELECT Country AS [Average per Country],
[Low], [Med], [High]
FROM (
SELECT [Country], [PriceRange], [Score]
FROM [dbo].[Restaurants]
) AS SourceTable
PIVOT (
AVG(Score)
FOR [PriceRange] IN ([Low], [Med], [High])
) AS PivotTable