有谁知道如何根据多列表的单列删除和合并重复项以创建“垂直摘要”。
IE) 尝试从表 A 构建表 B
Table A:
Person Language
Bob English
Sarah French
John Chinese
Bob French
Sarah English
Sarah Chinese
Table B (RESULT):
Person English French Chinese
Bob Y Y (null)
Sarah Y Y Y
John (null) (null) Y
我最初的想法是:从数据中创建表 A,然后执行以下操作:
Create table summary as
Select person, (case when language = 'English' then 'Y') as English, (case when language = 'French' then 'Y') as French, (case when language = 'Chinese' then 'Y') as Chinese
From Table A;
最后做一个选择不同的汇总表。然而,逻辑是错误的,特别是因为 distinct 在所有列中都这样做,但我只想要不同的人名。
我脑海中想到的另一个选择是创建一个表,其中仅包含不同的人名和空列英语、法语和中文。然后使用更新语句通过匹配表 A 来填充它们。
有谁知道更好的方法/我如何实现这一点。我仍处于学习 Oracle 的早期阶段(尤其是关于循环),任何帮助将不胜感激。
谢谢!