2020年4月8日5:18 2020年4月8日5:22 2020年8月4日7:22 2020年8月4日7:31 2020年4月9日1:44 2020年4月9日1:50
请帮助我转换下表,而不创建临时表。尝试PIVOT,但失败。任何建议都会有所帮助。谢谢
现有表格:
时间您可以枚举它们并聚合:
select max(case when value = 1 then time end) as value_1,
max(case when value = 0 then time end) as value_0
from (select t.*,
row_number() over (partition by value order by time) as seqnum
from t
) t
group by seqnum;
在ROW_NUMBER
窗口函数和PIVOT
:组合中尝试此解决方案
SELECT [0], [1]
FROM
(
SELECT Value, TIME, ROW_NUMBER() OVER (PARTITION BY Value ORDER BY TIME) Rb
FROM MyTable
) AS SourceTable
PIVOT
(
MAX(TIME)
FOR Value IN ([0], [1])
) AS PivotTable