2

我有一张桌子(称它为 table myTable)。

它有这样的数据:

号码/姓名

1    jake
2    chris
3    sally
4    billy
1    tom
5    cathy

(我意识到这是一个糟糕的设置,但我没有得到奢侈的设置)



我需要查询此表,以便返回结果:

1    jake
2    chris
3    sally
4    billy
5    cathy

或者

2    chris
3    sally
4    billy
1    tom
5    cathy


为重复的数字返回哪个名称并不重要……只有返回一个。

这是我不工作的尝试:

with
a as (
      SELECT number
      FROM myTable
),

b as (
      SELECT number, name
      FROM myTable
)


SELECT a."number", b."name"

FROM a
left join b on a."number" = b."number"
4

2 回答 2

2

用于GROUP BY确保每个number仅返回一次,并使用聚合函数为 选择以下值之一name

SELECT number, MAX(name) AS name
FROM yourtable
GROUP BY number
于 2012-06-26T19:47:40.437 回答
0

试试这个。由于您不关心返回属于数字的多个名称中的哪一个,因此您可以使用 max 或 min 函数。

select number, max(name)
from myTable
group by number
于 2012-06-26T19:49:25.243 回答