Select 个字段的不同行
Select distinct lines by a field
我正在做一个 select returns 我 table 喜欢这个
Name surname
Jhon a
Jhon b
Jhon c
Joe a
Joe b
Joe c
但我需要得到的只是 Jhon
的一次出现和 Joe
的一次出现,其中一个姓氏。
我只能有一个Jhon
一个姓氏和一个Joe
一个姓氏..
我无法创建 order by
,因为我需要 select 名字和姓氏。此外,如果我使用 distinct,我将拥有所有 Jhons 和 Joes。
你能帮帮我吗?
您可以只使用聚合:
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;
如果您想从同一行中获取多个列,这将特别有用。
我正在做一个 select returns 我 table 喜欢这个
Name surname
Jhon a
Jhon b
Jhon c
Joe a
Joe b
Joe c
但我需要得到的只是 Jhon
的一次出现和 Joe
的一次出现,其中一个姓氏。
我只能有一个Jhon
一个姓氏和一个Joe
一个姓氏..
我无法创建 order by
,因为我需要 select 名字和姓氏。此外,如果我使用 distinct,我将拥有所有 Jhons 和 Joes。
你能帮帮我吗?
您可以只使用聚合:
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;
如果您想从同一行中获取多个列,这将特别有用。