如何将单个列转换为单行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将单个列转换为单行相关的知识,希望对你有一定的参考价值。
我似乎无法找到一个很好的例子,但是假设我有一个看起来如下的结果表......
result
100
200
400
并且假设行数总是相同的(在这种情况下n = 3),现在我想转置它并且能够为每个列命名我想要的...
result1 result2 result3
100 200 400
我查看了pivot
功能,但我似乎无法让它工作......
select * from total_results pivot(result for result in (result1, result2, result3))
但是这给了我错误。我怎么能完成我想要的东西,我似乎无法找到一个我能理解的简单例子,因为pivot
证明难以使用。
答案
你想要row_number()
与条件聚合:
select max(case when seq = 1 then result end) as result1,
max(case when seq = 2 then result end) as result2,
max(case when seq = 3 then result end) as result3
from (select t.*,
row_number() over (order by result) as seq
from table t
) t;
另一答案
您可以使用条件聚合:
select max(case when seqnum = 1 then result end) as result1,
max(case when seqnum = 2 then result end) as result2,
max(case when seqnum = 3 then result end) as result3
from (select t.*, row_number() over (order by result) as seqnum
from t
) t;
关键是使用row_number()
枚举值然后使用它。我更喜欢条件聚合,但pivot
也是如此。
以上是关于如何将单个列转换为单行的主要内容,如果未能解决你的问题,请参考以下文章
将 Numpy 数组按列转换为 Pandas DataFrame(作为单行)