我试图从表格中选择一个值,如下例所示:
user id
----------
a 1
b 1
c 3
d 2
a 3
,结果如下:
user id_1 id_2 id_3
-----------------------
a 1 NULL 3
b 1 NULL NULL
c NULL NULL 3
d NULL 2 NULL
所以我基本上想要实现的目标是让所有使用id's ==1
的用户访问某列,将id ==2
的用户添加到另一列,将id ==3
的用户设置为'a'
第三列和用户是重复的,就像用户id=1
在id=3
和{{1}}显示一次时的情况一样,并且我希望在结果表中捕获此重复项。
任何想法都会受到赞赏。 提前谢谢!
答案 0 :(得分:1)
这称为枢轴。您可以使用条件聚合执行此操作:
select user,
max(case when id = 1 then id end) as id_1,
max(case when id = 2 then id end) as id_2,
max(case when id = 3 then id end) as id_3
from table t
group by user
order by user;