我正在制作一个选择,它会返回一个像这样的表
Name surname
Jhon a
Jhon b
Jhon c
Joe a
Joe b
Joe c
但我需要得到的只是Jhon
的一次出现,以及其中一个姓氏的Joe
之一。
我只能有一个Jhon
有一个姓氏,一个Joe
有一个姓氏。
我无法制作order by
,因为我需要选择名字和姓氏。如果我使用不同的话,我将拥有所有的Jhons和Joes ..
答案 0 :(得分:1)
您可以使用聚合:
select name, max(surname) as surname
from table t
group by name;
您还可以使用分析函数执行类似操作:
select t.name, t.surname
from (select t.*, row_number() over (partition by name order by name) as seqnum
from table t
) t
where seqnum = 1;
如果您想从同一行获取多个列,这将非常有用。