我有一张桌子(称之为表myTable)。
它有这样的数据:
号码/名称
1 jake
2 chris
3 sally
4 billy
1 tom
5 cathy
(我意识到这是一个糟糕的设置,但我没有得到设置的奢侈)
我需要查询此表,以便返回结果:
1 jake
2 chris
3 sally
4 billy
5 cathy
OR
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"
答案 0 :(得分:2)
使用GROUP BY
确保每个number
仅返回一次,并使用聚合函数为name
选择一个值:
SELECT number, MAX(name) AS name
FROM yourtable
GROUP BY number
答案 1 :(得分:0)
试试这个。由于您不关心返回属于某个数字的多个名称,您可以使用max或min函数。
select number, max(name)
from myTable
group by number