【发布时间】:2020-10-20 00:38:21
【问题描述】:
我有一个数据集,其中包含来自同一个人/ID 的多个响应(ID 为单独的行,同一列中的响应)。我希望创建其他列(通过视图或创建/更新其他列)以将这些多个响应保留在一行中。我假设我需要自己加入表并为此使用另一个(顺序)ID?任何帮助将不胜感激(请参见下面的示例,对格式化表示歉意......)。
提前致谢!
当前数据:
ID Column1
------------------------
P1 Response1
P1 Response2
P2 Response1
P2 Response2
所需数据:
ID Column1a Column1b
--------------------------------
P1 Response1 Response2
P2 Response1 Response2
【问题讨论】:
-
(1) 您使用的是什么数据库? (2) 最大响应数是否始终为 2? (3) 响应是如何排序的?
-
(1) 老实说,我不知道哈哈。 MSSql 服务器? (2) 在这种情况下,是的。但是我将跨表执行此操作,并且不确定这些表的最大值是多少。 (3) 响应按完成日期排序。
-
一般来说,在表中重复组是一个糟糕的数据库设计决策。不是第一范式的表会使查询更难编写,并人为地限制表中可以保存的数据。
标签: sql select duplicates pivot psql