2016-12-08 3 views
1

それぞれのid_Aにはどのようなid_bが最も多く存在するか知りたい。私は、この表SQL 2つの列にあるほとんどのIDを知る

id_A id_B 
1  1 
2  1 
2  1 
3  1 
3  3 
3  3 

を持っていると私はこのようにテーブルを置き、SQLコマンドが必要です。

id_A id_B 
1 1 
2 1 
3 3 
+1

タグあなたの質問を使用しているデータベースで。 –

+0

@GordonLinoff - sqlコマンドは.netでしか使用できません – Hogan

+0

カウント数に「結びついている」2つの項目があるとどうなりますか? – Hogan

答えて

2

技術を、これはの「モード」(の分布)の値と呼ばれています。あなたは一つだけにしたい場合は

は、その使用が条件付き凝集にANSI標準機能row_number()を使用することができます。

select id_A, id_B as mode_id_B 
from (select id_A, id_B, count(*) as cnt, 
      row_number() over (partition by id_A order by count(*) desc) as seqnum 
     from t 
     group by id_A, id_B 
    ) ab 
where seqnum = 1; 
関連する問題