如何在SQL中透视包含输出行中每个值的表



我无法解决这个问题。我试图使用PIVOT()函数,我已经阅读了文档并试图使用它。此外,我试图找到答案,但没有找到。

主要问题是使用PIVOT()函数,它必须包含聚合函数,但我不需要它,我只需要pivot表中没有任何聚合.

源表:

<表类> 国家 水平数tbody><<tr>德国高22德国中的5德国低3意大利高43意大利中的21意大利低8加拿大道明><</td>高9加拿大道明><</td>中的3加拿大道明><</td>低13

为什么你认为使用min/max会留下空的单元格?因为每个国家/关卡组合只有一个值,所以使用最小值或最大值实际上只是选择一个值。

显然,如果您的源数据对于每个国家/级别的组合有多个记录,那么您需要决定如何处理它。

这个SQL似乎工作良好:

select * 
from COUNTRY_INFO
pivot(max(NUMBER) for LEVEL in ('High', 'Medium', 'Low'))
as p
order by country;

最新更新