Sql 如何在没有聚合的情况下实现轴心,这是可能的吗?
我想按以下顺序重新排列表中的行和列。这可能吗?如何实现 这是我所期望的结果。我怎样才能做到这一点Sql 如何在没有聚合的情况下实现轴心,这是可能的吗?,sql,pivot,Sql,Pivot,我想按以下顺序重新排列表中的行和列。这可能吗?如何实现 这是我所期望的结果。我怎样才能做到这一点 如果您的每一行都有多个值,那么在没有聚合功能的情况下您希望得到什么? 如果每行只有一个值,那么使用sum、min、max或avg聚合函数就没有关系了。 像这样(在oracle中): 带示例的可执行版本: select row_id, 'C1', 'C2', 'C3' from (select 1 table_id, 'C1' Column_id, 1 Row_id, 20000 "v
如果您的每一行都有多个值,那么在没有聚合功能的情况下您希望得到什么?
如果每行只有一个值,那么使用sum、min、max或avg聚合函数就没有关系了。
像这样(在oracle中): 带示例的可执行版本:
select row_id, 'C1', 'C2', 'C3'
from (select 1 table_id, 'C1' Column_id, 1 Row_id, 20000 "value" from dual union all
select 1 table_id, 'C2' Column_id, 1 Row_id, 30000 "value" from dual union all
select 1 table_id, 'C3' Column_id, 1 Row_id, 25000 "value" from dual union all
select 1 table_id, 'C1' Column_id, 2 Row_id, 80200 "value" from dual union all
select 1 table_id, 'C2' Column_id, 2 Row_id, 50000 "value" from dual union all
select 1 table_id, 'C3' Column_id, 2 Row_id, 95000 "value" from dual)
pivot(max("value") for column_id in('C1', 'C2','C3'))
编辑:我在没有编辑器的情况下编写了这篇文章&没有运行SQL。我希望你明白了
select row_id, 'C1', 'C2', 'C3'
from (select 1 table_id, 'C1' Column_id, 1 Row_id, 20000 "value" from dual union all
select 1 table_id, 'C2' Column_id, 1 Row_id, 30000 "value" from dual union all
select 1 table_id, 'C3' Column_id, 1 Row_id, 25000 "value" from dual union all
select 1 table_id, 'C1' Column_id, 2 Row_id, 80200 "value" from dual union all
select 1 table_id, 'C2' Column_id, 2 Row_id, 50000 "value" from dual union all
select 1 table_id, 'C3' Column_id, 2 Row_id, 95000 "value" from dual)
pivot(max("value") for column_id in('C1', 'C2','C3'))
Select Row_ID,
Min(Case DBColumnName When 'c1' Then Value End) c1,
Min(Case DBColumnName When 'c2' Then Value End) c2,
Min(Case DBColumnName When 'c3' Then Value End) c3
From table
Group By Row_ID