我的数据集包含组,主要数据库与次要数据库位于同一行,但第三个个体(在数据库中列为第二个或第三个中学数据)放在另一行。
我尝试使用自联接和分组方式
Primary Secondary
a b
a c
d e
f NULL
我希望它看起来像这样
Primary Secondary Third
a b c
d e NULL
f NULL Null
答案 0 :(得分:0)
SQL表表示无序集。因此,您可以执行所需的操作,但无法控制哪些列获得哪些值-除非一列指定了顺序。
所以:
select primary, min(secondary) as secondary,
(case when min(secondary) <> max(secondary) then max(secondary) end) as third
from t
group by primary;