【问题标题】:Pivot Rows to Columns considerate Column Name and Value Columns SQLPivot Rows to Columns 考虑到列名和值列 SQL
【发布时间】:2021-03-04 02:02:07
【问题描述】:

我有下一个数据集(仅使用黄色单元格)。只考虑周到,例如获取列 iemitidos:

下一张图片有我需要的结果:

【问题讨论】:

  • 请不要使用图片显示表格,并且是您唯一的表格信息来源,请使用纯文本或表格降价并包含一些DDL。

标签: sql pivot


【解决方案1】:

我无法发明任何更聪明的东西(对于 MS SQL)。这对你有用吗?

declare
    @t table (f1 varchar (20), dt date, f2 int, f3 int, f4 int)

insert into @t
values
('ACS1', '2021-09-01',1727, 938, 0),
('ACS2', '2021-09-01',1513, 676, 0),
('ACS1', '2021-09-10',1759, 326, 10),
('ACS2', '2021-09-10',1524, 265, 15)

;with cte
as (
select row_number() over (partition by f1 order by (select dt)) rn, * from @t
)
select 
t1.f1, t1.f2, t2.f2, t1.f3, t2.f3, t1.f4, t2.f4 
from cte t1
cross join cte t2
where t1.f1=t2.f1
and t1.f2!=t2.f2
and t1.rn=1

输出:

f1      f2      f2      f3   f3     f4  f4
ACS1    1727    1759    938  326    0   10
ACS2    1513    1524    676  265    0   15

【讨论】:

  • 感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2012-08-17
  • 2022-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-23
  • 2018-03-16
  • 1970-01-01
相关资源
最近更新 更多