2

こんにちは、SQL (postgresql) の初心者です。2 つの異なる選択の結果
、2 つの テーブルがあります。

       all calls                    our customer contacts
   number contact_id      and     contact_id    name
    3213      12                        12     jonh
    3213      34                        16     michael
    3213      43                        65     hewlet
    5432      16                        32     steward
    5432      51
    6543      65
    2322      54
    2322      32

1 つの番号は異なる連絡先に属することができます... (連絡先は異なる顧客に属します) 最初の結果テーブルから個別の番号を選択する必要があります。2番目のテーブルからのこの連絡先の名前..

そして、2つの選択をどのように結合する必要があるか

ありがとう。

4

1 に答える 1

10

実際にはテーブルからdistinctも選択したいので、キーワードを使用することはできません。代わりに、集計関数の 1 つを使用して、個別の電話番号ごとに 1 つを選択する必要があります。contact_idall_callscontact_id

この例では、min()関数を使用してcontact_id、各電話番号の数値が最も低い連絡先を取得します。

select tmp.number, contacts.name
from (
  select number, min(contact_id) as min_id
  from all_calls
  group by number
) as tmp
join contacts on tmp.min_id = contacts.contact_id
于 2010-01-16T08:26:33.267 に答える