Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL使用pivot计算不同国家/地区的平均价格范围_Sql Server_Pivot - Fatal编程技术网

Sql server SQL使用pivot计算不同国家/地区的平均价格范围

Sql server SQL使用pivot计算不同国家/地区的平均价格范围,sql-server,pivot,Sql Server,Pivot,我有一个关于餐馆的数据库,有它们的价格范围(低、中、高),它们所在的国家,还有一些评论(整数) 因此,示例输出如下所示: Country | price range | score USA | Low | 5 Italy | Med | 3 England | High | 1 USA | Med | 4 现在,我需要以某种方式显示每个国家/地区的平均分数。这意味着每个国家每个范围的平均值,当

我有一个关于餐馆的数据库,有它们的价格范围(低、中、高),它们所在的国家,还有一些评论(整数)

因此,示例输出如下所示:

Country |  price range |  score
USA     |  Low         |  5
Italy   |  Med         |  3
England |  High        |  1
USA     |  Med         |  4
现在,我需要以某种方式显示每个国家/地区的平均分数。这意味着每个国家每个范围的平均值,当然需要使用轴心来显示它们,尽管我还没有做到这一点。请问我能做什么?

试试这个-

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 

通过
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

谢谢!,我一直在努力尝试,但没有成功,但这一切都非常成功。。我更喜欢这种方式,因为我需要使用枢轴或案例。