グループ化された select ステートメントの複数の列の結果で最も一般的な値を返す最も簡単な方法を探しています。私がオンラインで見つけているものはすべて、select 内の単一の項目の RANK を指すか、GROUP BY の外で各列を個別に処理します。
サンプルデータ:
SELECT 100 as "auser",
'A' as "instance1", 'M' as "instance2"
union all select 100, 'B', 'M'
union all select 100,'C', 'N'
union all select 100, 'B', 'O'
union all select 200,'D', 'P'
union all select 200, 'E', 'P'
union all select 200,'F', 'P'
union all select 200, 'F', 'Q'
サンプルデータの結果:
auser instance1 instance2
100 A M
100 B M
100 C N
100 B O
200 D P
200 E P
200 F P
200 F Q
クエリ ロジック (私の頭の中での見方):
SELECT auser, most_common(instance1), most_common(instance2)
FROM datasample
GROUP BY auser;
望ましい結果:
100 B M
200 F P