如何旋转这个 table?

How to I Pivot this table?

我创建了一个看起来像这样的 table:

我想旋转这个 table 使其看起来像;

我试过其他一些关于 PIVOT 的帖子,但我无法理解如何处理超过 2 列,也无法理解 table 中的值是来自不同变量的总和。

您想转置记录集(逆轴,然后在不同的 exis 上轴)。一种可移植的解决方案是使用union,然后进行条件聚合:

select 
    name,
    max(case when category = 'A' then val end) as valA,
    max(case when category = 'B' then val end) as valB
from (
    select category, premium val, 'premium' name from mytable
    union all select category, net_premium, 'net_premium' from mytable
    union all select category, claims, 'claims' from mytable
    union all select category, fees, 'fees' from mytable
    union all select category, expenses, 'expenses' from mytable
    union all select category, commissions, 'commissions' from mytable
) x
group by name

重要提示:要使 union 正常工作,要合并的所有列的数据类型必须相同(您的数据似乎就是这种情况,到处都是十进制值)。如果不是,您需要进行转换以对齐数据类型。