我需要一个SQL语句,它将根据两列的串联派生一个唯一的行列表。
鉴于这组数据,我希望结果删除重复的行,其中副本被定义为Column1和Column2的串联。
东西:
ID Column1 Column2 Column3
1 a z L
2 b y G
3 b y G
4 a y H
5 a z L
这就是我提出的:
SELECT DISTINCT ( Column1 || Column2 ) FROM things
结果:
az
by
ay
这样可以正常工作,但它只导出Column1和Column2的唯一串联列表,
我还需要返回Column3,如:
Column1 Column2 Column3
a z L
b y G
a y H
这不起作用:
SELECT DISTINCT ( Column1 || Column2 ), Column3 FROM things
因为它返回的行数多于所需的行数。
如何根据两列的串联构造一个SQL语句来派生唯一行的所需结果? Column3不是唯一的并不重要。
答案 0 :(得分:2)
如果您只想要Column3
的任意值:
select column1, column2, min(Column3)
from table t
group by column1, column2;
您可以使用group_concat()
获取所有值。
答案 1 :(得分:0)
如果你不关心Column3
他们是怎么来的,你可以使用group by
select
Column1,
Column2,
Column3
from things
group by Column1,Column2