我有一张超过60列的桌子。我想减少列的数量,并且已经有了一个想法。
所以这些列看起来是这样的:

A_yes A_no B_yes B_no C_yes C_no
1     4    3     5    9     2

我想要的是这个
Category   yes   no
A          1     4
B          3     5
C          9     2

当然,这是非常简单的,但是解决这个问题的方法将由我用这个模式来扩展。
我在用PostgreSQL。
提前谢谢!

最佳答案

可以使用横向连接:

select v.*
from t cross join lateral
     (values ('A', A_yes, A_no),
             ('B', B_yes, B_no),
             ('C', C_yes, C_no)
     ) v(category, yes, no);

关于sql - 通过转置减少列数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57309626/

10-16 10:32