将单行转置为列
Posted
技术标签:
【中文标题】将单行转置为列【英文标题】:transpose single row to column 【发布时间】:2020-11-17 15:10:38 【问题描述】:我见过类似的问题,但答案对我不起作用,我想转置下表:
| 2017 | 2018 | 2019 | 2020 |
|------ |------ |------ |------ |
| 358 | 1300 | 973 | 101 |
并且想得到这张桌子:
| | Count |
|------ |------- |
| 2017 | 358 |
| 2018 | 1300 |
| 2019 | 973 |
| 2020 | 101 |
【问题讨论】:
一般、简单的方法:UNION ALL。 这能回答你的问题吗:***.com/questions/23060256/… @jarlh:“简单”的方法是使用横向连接;) @a_horse_with_no_name,是的,当然。 【参考方案1】:使用横向连接:
select x.year, x.count
from the_table t
cross join lateral (
values ("2017", 2017), ("2018", 2018), ("2019", 2019), ("2020", 2020)
) as x(count, year)
Online example
【讨论】:
它对我不起作用。我收到错误 ERROR: column "2017" does not exist in t @enriqueqs:您的示例数据显示了一个名为"2017"
的列 - 如果您没有,您应该向我们展示 real 列名。
它来自sum(2017_values) as "2017"
@enriqueqs:请编辑您的问题并向我们展示完整的查询。根据问题中的当前信息,这是唯一可能给出的答案。
@enriqueqs 。 . .这回答了您提出的问题,我认为您应该接受答案。如果您有一个不同的问题,那么将其作为一个新问题提出。以上是关于将单行转置为列的主要内容,如果未能解决你的问题,请参考以下文章