【发布时间】:2016-08-05 20:27:16
【问题描述】:
我有一个包含 51 列的 CSV 文件。
按此顺序,一天中的每个 30 分钟段(从 00:30 到 00:00)有一个 UID 列、序列列、日期列和 48 个列。每天都有新的一行。 所以它看起来像:
UID | Serial | Date | Val_0030 | Val_0100 | Val_0130 | ..... | Val_0000
123 | 123456 | 2016-01-02 | 56.2 | 23.25 | 32.8 | ..... | 86.23
我需要将这些数据转换成 4 列,这样每半小时就有一个 UID、Serial 和 Date 列。换句话说,我需要跑下来而不是穿过。
看起来像这样:
UID | Serial | 2016-01-02 00:30 | Value
而不是像现在这样每天都有一个新行,我将确定 Val_0130 例如将确定时间为 01:30 并将与日期连接
我曾尝试使用 pivot 和 unpivot,但没有成功。谁能建议最好的方法来做到这一点。
【问题讨论】:
-
你在生成 UID 和序列号吗?如果是这样,为什么您不能按您需要的时间间隔对日期字段进行分组并生成它们?但是,如果 UID 和序列号存在,它们的名字让我认为它们是独一无二的......你如何为你的 30 分钟分组选择一个不同的?
-
UID和序列号由客户提供,用于识别设备。 UID 是在资产登记簿中定位设备的编号,序列号就是序列号。我会尝试分组,看看会发生什么。
-
您需要处理每个时间间隔组的多个 UID 和序列实例
-
或者如果您需要该详细信息,您可以将它们包含在您的分组中,但是您将多次出现相同的 30 分钟间隔。基本上按设备
标签: sql pivot sql-server-2014