Select 只有不同的列
Select only distinct columns
我有 table T 并且想要 select 只有不同的列(字段之间没有相关性)
F1 F2 F3
1 A AA
1 B BB
2 B CC
2 C DD
2 C EE
3 C EE
期望的输出
F1 F2 F3
1 A AA
2 B BB
3 C CC
null null DD
null null EE
我试试
select T.F1, T1.F2 from
(select distinct F1, row_num() rn from T) T
left join (select distinct F2, row_num() rn from T) T1 on T.rn=T1.rn1
left join etc...
能再简单点吗?
Input:
F1 F2
1 A
1 B
2 B
2 C
2 C
3 C
Desired output:
F1 F2
1 A
2 B
3 C
根据提供的输入,这也会产生所需的输出:
SELECT F1, MIN(F2) AS F2
FROM T
GROUP BY F1;
**Example for two columns.**
SELECT t1.f1, t2.f2
FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY f1) AS num, f1 FROM
(
SELECT DISTINCT f1 FROM T
) AS t1
) AS t1
FULL JOIN
(
SELECT ROW_NUMBER() OVER(ORDER BY f2) AS num, f2 FROM
(
SELECT DISTINCT f2 FROM T
) AS t2
) AS t2 ON t2.num = t1.num
我有 table T 并且想要 select 只有不同的列(字段之间没有相关性)
F1 F2 F3
1 A AA
1 B BB
2 B CC
2 C DD
2 C EE
3 C EE
期望的输出
F1 F2 F3
1 A AA
2 B BB
3 C CC
null null DD
null null EE
我试试
select T.F1, T1.F2 from
(select distinct F1, row_num() rn from T) T
left join (select distinct F2, row_num() rn from T) T1 on T.rn=T1.rn1
left join etc...
能再简单点吗?
Input:
F1 F2 1 A 1 B 2 B 2 C 2 C 3 C
Desired output:
F1 F2 1 A 2 B 3 C
根据提供的输入,这也会产生所需的输出:
SELECT F1, MIN(F2) AS F2
FROM T
GROUP BY F1;
**Example for two columns.**
SELECT t1.f1, t2.f2
FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY f1) AS num, f1 FROM
(
SELECT DISTINCT f1 FROM T
) AS t1
) AS t1
FULL JOIN
(
SELECT ROW_NUMBER() OVER(ORDER BY f2) AS num, f2 FROM
(
SELECT DISTINCT f2 FROM T
) AS t2
) AS t2 ON t2.num = t1.num