将许多重复的用户ID和许多列折叠为唯一的用户ID表

时间:2018-01-11 05:24:35

标签: sql-server

原始数据集:

  • 行是事件,每个事件都有唯一的用户ID作为列,用户ID在不同的事件中重复
  • 有5列跟踪与事件相关的条件代码 - CODE1到CODE5,它们都是从同一组可能的代码值中提取的。事件有0到5个与之关联的代码

目标表:

  • 行是唯一的用户ID
  • 列标题表示CODE列的所有唯一值(可能约30个),因此总共30列
  • 每个单元格包含0或1,表示在任何事件中,该用户是否附加了列条件代码

在excel中我会将所有30列添加到原始数据集中,在这些单元格中创建1s / 0s,然后使用sumproduct double一元函数拉入唯一用户ID表但不熟悉SQL中的选项

1 个答案:

答案 0 :(得分:0)

好的 - 回答我自己的问题。

在列上使用“Unpivot”运算符,将带有条件分数的表连接到该skinnier表,然后在所有分数中由唯一成员添加。

不能让我得到我想要的表输出,但它能合理有效地得到答案。