2

テーブルがあります (テーブル 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


重複した番号に対してどの名前が返されるかは問題ではありません...その 1 つだけが返されます。

これが私のうまくいかない試みです:

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が 1 回だけ返されるようにし、集計関数を使用して の値の 1 つを選択します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 に答える